适用场景:技术培训材料总结、开发人员参考资料总结、代码规范手册总结
演讲要点:对象初始化过程总结、类继承与构造方法分析、抽象类与接口实现要点
行文逻辑:初始化对象→继承类处理→构造方法调用→抽象类定义→接口实现
对象的初始化
(1) 非静态对象的初始化
在创建对象时,对象所在类的所有数据成员会首先进行初始化。
基本类型:int型,初始化为0。
如果为对象:这些对象会按顺序初始化。
※在所有类成员初始化完成之后,才调用本类的构造方法创建对象。
构造方法的作用就是初始化。
(2) 静态对象的初始化
程序中主类的静态变量会在main方法执行前初始化。不仅第一次创建对象时,类中的所有静态变量都初始化,并且第一次访问某类(注意此时未创建此类对象)的静态对象时,所有的静态变量也要按它们在类中的顺序初始化。
继承时,对象的初始化过程
(1) 主类的超类由高到低按顺序初始化静态成员,无论静态成员是否为private。
(2) 主类静态成员的初始化。
(3) 主类的超类由高到低进行默认构造方法的调用。注意,在调用每一个超类的默认构造方法前,先进行对此超类进行非静态对象的初始化。
(4) 主类非静态成员的初始化。
(5) 调用主类的构造方法。
关于构造方法
(1) 类可以没有构造方法,但如果有多个构造方法,就应该要有默认的构造方法,否则在继承此类时,需要在子类中显式调用父类的某一个非默认的构造方法了。
(2) 在一个构造方法中,只能调用一次其他的构造方法,并且调用构造方法的语句必须是
第一条语句。
有关public、private和protected
(1) 无public修饰的类,可以被其他类访问的条件是:a.两个类在同一文件中,b.两个类在同一文件夹中,c.两个类在同一软件包中。
(2) protected:继承类和同一软件包的类可访问。
(3) 如果构造方法为private,那么在其他类中不能创建该类的对象。
抽象类
(1) 抽象类不能创建对象。
(2) 如果一个类中一个方法为抽象方法,则这个类必须为abstract抽象类。
(3) 继承抽象类的类在类中必须实现抽象类中的抽象方法。
(4) 抽象类中可以有抽象方法,也可有非抽象方法。抽象方法不能为private。
(5) 间接继承抽象类的类可以不给出抽象方法的定义。
final关键字
(1) 一个对象是常量,不代表不能转变对象的成员,仍可以其成员进行操作。
(2) 常量在使用前必须赋值,但除了在声明的同时初始化外,就只能在构造方法中初始化 。
(3) final修饰的方法不能被重置(在子类中不能出现同名方法)。
(4) 如果声明一个类为final,则所有的方法均为final,无论其是否被final修饰,但数据成员可为final也可不是。
接口interface (用implements来实现接口)
(1) 接口中的所有数据均为 static和final即静态常量。尽管可以不用这两个关键字修饰,但必须给常量赋初值。
(2) 接口中的方法均为public,在实现接口类中,实现方法必须可public关键字。
(3) 如果使用public来修饰接口,则接口必须与文件名相同。
多重继承
(1) 一个类继承了一个类和接口,那么必须将类写在前面,接口写在后面,接口之间用逗号分隔。
(2) 接口之间可多重继承,注意使用关键字extends。
(3) 一个类虽只实现了一个接口,但不仅要实现这个接口的所有方法,还要实现这个接口继承的接口的"方法,接口中的所有方法均须在类中实现。
接口的嵌入
(1) 接口嵌入类中,可以使用private修饰。此时,接口只能在所在的类中实现,其他类不能访问。
(2) 嵌入接口中的接口一定要为public。
类的嵌入
(1) 类可以嵌入另一个类中,但不能嵌入接口中。
(2) 在静态方法或其他方法中,不能直接创建内部类对象,需通过手段来取得。手段有两种:
class A {
class B {}
B getB() {
B b = new B();
return b;
}
}
static void m() {
A a = new A();
A.B ab = a.getB(); // 或者是 A.B ab = a.new B();
}
(3) 一个类继承了另一个类的内部类,因为超类是内部类,而内部类的构造方法不能自动被调用,这样就需要在子类的构造方法中明确的调用超类的构造方法。
接上例:
class C extends A.B {
C() {
new A().super(); // 这一句就实现了对内部类构造方法的调用。
}
}
构造方法也可这样写:
C(A a) {
a.super();
} // 使用这个构造方法创建对象,要写成C c = new C(a); a是A的对象。
异常类
JAVA中除了RunTimeException 类,其他异常均须捕获或抛出。
以上就是 java 基础知识精华总结,希望大家熟练掌握灵活运用,多学,多问,更多java基础知识尽在拓胜。
适用场景:课程学习总结报告、个人成长分析材料、技术能力评估文档
演讲要点:面向对象编程实践、异常处理机制应用、多线程编程理解
行文逻辑:掌握编程思想→学习异常处理→理解多线程应用→提升网络编程能力
Java是一门实用性极强的编程语言,我在这个学期里通过学习Java,不仅学到了丰富的知识,还培养了自己的思维方式和解决问题的能力。通过这门课程的学习,我对Java有了更深入的理解,并且也认识到了自身的不足之处。在这篇文章中,我将总结自己的学习心得体会,以期在今后的学习和工作中能够有所借鉴和提升。
首先,Java学习的最大收获是掌握了面向对象的编程思想。在Java的世界里,一切皆对象。这种思维方式给我带来了很大的启发和帮助。通过学习面向对象的原则和方法,我能够更加清晰地理解和组织问题,将复杂的问题分解成简单的对象,然后通过对象之间的交互达到解决问题的目的。这种思维方式使得代码更加易读、易懂,也更加容易维护和扩展。在今后的学习和工作中,我将继续运用面向对象的思想,提升自己的编程能力。
其次,Java的异常处理机制让我深刻体会到了“预防胜于治疗”的道理。在实际的编程过程中,我遇到了各种各样的异常情况,包括空指针异常、数组越界异常等等。通过学习Java的异常处理机制,我知道了如何预测并处理这些异常,避免程序崩溃或者出现不可预料的错误。同时,在处理异常的过程中,我也逐渐养成了良好的编程习惯,比如在代码中加入适当的注释、进行变量的有效性检查等等。掌握了异常处理机制,我相信能够写出更加健壮、稳定的代码。
第三,Java的多线程编程给我带来了全新的体验。在这门课程中,我学到了多线程的概念和使用方法,并且通过实际的代码编写和调试,深入理解了多线程的运行机制和注意事项。多线程编程不仅可以提高程序的运行效率,还可以实现一些与时间相关的功能,比如定时任务、实时更新等等。多线程编程的挑战在于避免线程安全问题,要合理使用锁、信号量等机制来保护共享资源。通过学习多线程编程,我收获了对并发编程的理解和应用能力。
第四,Java的网络编程让我体会到了“连通世界”的魅力。通过学习Java的`网络编程知识,我可以实现不同计算机之间的通信和数据传输。网络编程不仅可以用于构建客户端-服务器的应用,还可以实现点对点的通信、文件传输等功能。在实际的编程过程中,我遇到了各种网络问题,比如连接超时、网络异常等等。通过解决这些问题,我学到了很多关于网络调试和优化的技巧,使自己的程序更加稳定和高效。
最后,通过Java的学习,我也认识到了自身的不足之处。在编程的过程中,我发现自己对一些基础知识还不足够扎实,比如数据结构和算法等。这使我意识到了自己在算法设计和问题解决能力上的不足,也给我一个提高自己的机会。在今后的学习和工作中,我将注重加强对基础知识的学习,提高自己的编程水平,更好地应对各种挑战和需求。
总而言之,通过这门Java课程的学习,我不仅掌握了实用的编程技巧和知识,还培养了自己的思维方式和解决问题的能力。通过面向对象的编程思想、异常处理机制、多线程编程和网络编程等的学习,我对Java有了更深入的理解,并且认识到了自身的不足之处。我相信,通过不断学习和实践,我能够不断提升自己的编程能力,为将来的学习和工作打下坚实的基础。
适用场景:考试重点复习总结、知识点归纳总结、学习资料整理总结
演讲要点:对象属性与方法总结→继承与多态性分析→类与实例关系提炼
行文逻辑:识别对象特征→定义类与实例→传递消息→实现继承→展示多态性
2.2 面向对象的程序设计
考点2 面向对象方法的基本概念
考试链接:
考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以填空题的形式出现,分值为2分,此考点为重点识记内容,读者应该识记几个基本要素的定义、对象的特征以及消息、继承、类的定义。
误区警示:
当使用"对象"这个术语时,既可以指一个具体的对象,也可以泛指一般的对象,但是当使用"实例"这个术语时,必须是指一个具体的对象。
面向对象方法涵盖对象及对象属性与方法、类、继承、多态性几个基本要素。
(1)对象
通常把对对象的操作也称为方法或服务。
属性即对象所包含的信息,它在设计对象时确定,一般只能通过执行对象的操作来改变。属性值应该指的是纯粹的数据值,而不能指对象。
操作描述了对象执行的功能,若通过信息的传递,还可以为其他对象使用。
对象具有如下特征:标识惟一性、分类性、多态性、封装性、模块独立性。
(2)类和实例
类是具有共同属性、共同方法的对象的集合。它描述了属于该对象类型的所有对象的性质,而一个对象则是其对应类的一个实例。
类是关于对象性质的描述,它同对象一样,包括一组数据属性和在数据上的一组合法操作。
(3)消息
消息是实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。
一个消息由三部分组成:接收消息的对象的名称、消息标识符(消息名)和零个或多个参数。
(4)继承
广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。
继承分为单继承与多重继承。单继承是指,一个类只允许有一个父类,即类等级为树形结构。多重继承是指,一个类允许有多个父类。
(5)多态性
对象根据所接收的消息而做出动作,同样的消息被不同的对象接收时可导致完全不同的行动,该现象称为多态性。
疑难解答:能举一下现实中的对象及其属性和操作吗?
一辆汽车是一个对象,它包含了汽车的属性(如颜色、型号等)及其操作(如启动、刹车等)。一个窗口是对象,它包含了窗口的属性(如大小、颜色等)及其操作(如打开、关闭等)。