1、对象的初始化
(1)非静态对象的初始化
在创建对象时,对象所在类的所有数据成员会首先进行初始化。
基本类型:int型,初始化为0。
如果为对象:这些对象会按顺序初始化。
※在所有类成员初始化完成之后,才调用本类的构造方法创建对象。
构造方法的作用就是初始化。
(2)静态对象的初始化
程序中主类的静态变量会在main方法执行前初始化。
不仅第一次创建对象时,类中的所有静态变量都初始化,并且第一次访问某类(注意此时未创建此类对象)的静态对象时,所有的静态变量也要按它们在类中的顺序初始化。
2、继承时,对象的初始化过程
(1)主类的超类由高到低按顺序初始化静态成员,无论静态成员是否为private。
(2)主类静态成员的初始化。
(3)主类的超类由高到低进行默认构造方法的调用。注意,在调用每一个超类的默认构造方法前,先进行对此超类进行非静态对象的初始化。
(4)主类非静态成员的初始化。
(5)调用主类的构造方法。
3、关于构造方法
(1)类可以没有构造方法,但如果有多个构造方法,就应该要有默认的构造方法,否则在继承此类时,需要在子类中显式调用父类的某一个非默认的构造方法了。
(2)在一个构造方法中,只能调用一次其他的构造方法,并且调用构造方法的语句必须是第一条语句。
4、有关public、private和protected
(1)无public修饰的类,可以被其他类访问的条件是:a.两个类在同一文件中,b.两个类在同一文件夹中,c.两个类在同一软件包中。
(2)protected:继承类和同一软件包的类可访问。
(3)如果构造方法为private,那么在其他类中不能创建该类的对象。
5、抽象类
(1)抽象类不能创建对象。
(2)如果一个类中一个方法为抽象方法,则这个类必须为abstract抽象类。
(3)继承抽象类的类在类中必须实现抽象类中的抽象方法。
(4)抽象类中可以有抽象方法,也可有非抽象方法。抽象方法不能为private。
(5)间接继承抽象类的类可以不给出抽象方法的定义。
6、final关键字
(1)一个对象是常量,不代表不能转变对象的成员,仍可以其成员进行操作。
(2)常量在使用前必须赋值,但除了在声明的同时初始化外,就只能在构造方法中初始化。
(3)final修饰的方法不能被重置(在子类中不能出现同名方法)。
(4)如果声明一个类为final,则所有的方法均为final,无论其是否被final修饰,但数据成员可为final也可不是。
7、接口interface(用implements来实现接口)
(1)接口中的所有数据均为static和final即静态常量。尽管可以不用这两个关键字修饰,但必须给常量赋初值。
(2)接口中的方法均为public,在实现接口类中,实现方法必须可public关键字。
(3)如果使用public来修饰接口,则接口必须与文件名相同。
8、多重继承
(1)一个类继承了一个类和接口,那么必须将类写在前面,接口写在后面,接口之间用逗号分隔。
(2)接口之间可多重继承,注意使用关键字extends。
(3)一个类虽只实现了一个接口,但不仅要实现这个接口的所有方法,还要实现这个接口继承的接口的方法,接口中的所有方法均须在类中实现。
9、接口的嵌入
(1)接口嵌入类中,可以使用private修饰。此时,接口只能在所在的类中实现,其他类不能访问。
(2)嵌入接口中的接口一定要为public。
10、类的嵌入
(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的对象。
|
11、异常类JAVA中除了RunTimeException类,其他异常均须捕获或抛出
分享到:
相关推荐
总之,这份"超级经典"的Java基础知识总结提供了全面的学习路径,不仅适合初学者入门,也对有经验的开发者温故知新、提升技能有所帮助。结合"fastrcnn改进点.docx",读者还能了解如何将Java应用于机器学习领域,拓宽...
在本项目"温故知新,通过学习尚学堂飞机游戏项目,理解Java...通过实际操作和分析这个游戏项目,学习者不仅能巩固Java基础知识,还能了解到游戏开发的一些通用技巧和实践经验。这是一个极好的学习资源,值得深入研究。
这篇博客"java基础知识30个经典问答"通过问答形式,详细解答了Java学习中常见的问题,帮助初学者巩固基础,同时也适合有经验的开发者温故知新。下面,我们将深入探讨这些问答中的关键知识点。 1. **什么是Java?** ...
通过阅读《Java核心技术 卷1 基础知识》原书第10版,初学者可以系统地学习Java编程,而经验丰富的开发者也可以从中温故知新,加深对Java语言的理解。这本书的PDF电子书版本提供了高清的阅读体验,并带有索引书签目录...
在这个“java基础项目(35个java游戏)”中,我们可以深入理解Java的基础知识,并通过实际的游戏开发项目来提升编程技能。这个资料分享是针对那些想要在Java编程领域打下坚实基础的学习者,特别是对游戏开发感兴趣的...
总的来说,这份“前人总结出来的精华之作”不仅涵盖了Java语言的基础,还深入到高级主题,包括算法和数据结构的应用,这些都是提升编程能力的关键。对于初学者来说,通过这些笔记系统地学习和实践,能够迅速提升编程...
接着是"02Javabase.pdf",这可能是关于Java基础的进一步深入,可能涵盖类、对象、封装、继承、多态等面向对象编程的基本概念,还有异常处理、接口、包的使用等。 "03Arrays.pdf"则专注于Java中的数组,包括一维和...
【Java基础课程教学PPT】是一系列深入浅出讲解Java编程语言的教学材料,由一位深受学生喜爱的讲师精心编排。这些PPT涵盖了面向对象编程(OOP)的核心概念,旨在帮助初学者建立坚实的基础,同时也适合有经验的开发者...
- 复习上一节所学的Java基础知识。 - 重点复习数据类型和运算符的使用方法。 **机器狂人:** - 使用IDEA或Eclipse等集成开发环境创建新的Java项目。 - 设置项目的基本配置,如编码格式、构建路径等。 **高手之路:...
在本资源"Java编程复习代码"中,作者...对于Java基础不牢固的学生,这是一个很好的温故知新的机会,可以帮助他们巩固理论知识,提升编程能力。同时,通过阅读作者的笔记,可以学习到编程思维和经验,有助于自我提升。
这些程序是学习Java编程语言及其应用的宝贵资源,不仅能让初学者了解基本的编程概念,也能帮助有经验的开发者温故知新,探索不同的实现方式。 首先,让我们从五子棋程序入手。五子棋是一种双人对弈的策略游戏,通过...
3. **基础知识**: 书中的“Back To Basics”意味着它会从编程的基本语法开始,如变量、数据类型、运算符、流程控制(条件语句、循环)、方法等,确保读者掌握编程的基础工具。 4. **类与对象**: Java中的所有事物都...
在学习Java中,常常碰到...这套JavaSE教程基于Java17讲述,从零基础出发,讲解Java编程的基础知识和实践技巧,涵盖了Java编程的方方面面。 原文链接:https://blog.csdn.net/2301_78369729/article/details/130947974
最后,Java的IO和NIO(非阻塞I/O)系统也是重要的知识点。从文件操作到流的使用,再到NIO的通道和选择器,这些内容对于处理数据输入输出至关重要。 本套中文课件涵盖了Java编程的方方面面,不仅适用于初学者,也...
这个"java-classic-program.rar"压缩包包含了名为"java经典小程序.doc"的文档,我们可以从中挖掘出丰富的Java编程知识点。 首先,"java经典小程序.doc"很可能是一个集合了多种Java编程示例的文档,这些示例可能涵盖...
最后,本文通过网络编程的基础上强化了Java的优势,达到宁静致远的学习境界,让学生更深入高效地学会Java语言,使学生能够熟练完成相应程序的开发,提高了学生对Java面向对象程序设计的学习效果。 本文提出的基于...
这本书深入浅出地介绍了Java编程语言的基础知识,核心概念,以及在实际开发中的应用,旨在帮助读者掌握Java编程技能,为求职之路打下坚实基础。 1. **Java概述**:Java是一种面向对象的、跨平台的编程语言,由Sun ...
总的来说,这份"JAVA程序课件"提供了全面的Java编程知识,从基础到高级,旨在帮助学习者快速掌握Java语言,无论你是初入编程的新手还是希望巩固Java技能的开发者,都能从中受益。通过系统学习和实践,你将有能力编写...