一、用构造器确保初始化

1、构造器的名称与类名完全相同

2、构造器类型:

  • 无参构造器:不接受任何参数的构造器(当不创建构造器的时候,系统会默认生成默认构造器,即无参构造器)
  • 有参构造器:接受参数的构造器

3、如果创建类的构造器,那么系统则不会自动生成构造器

4、构造器是一种特殊类型的方法,因为它没有返回值(与返回值void明显不同) 理解:使用new关键字得到对象的引用,这个引用并不是构造器返回的,但是构造器可以返回其他别的东西

二、构造器调用构造器(涉及到重载)

1、有可能一个类中定义了多个构造器,那么可以利用一个构造器调用另一个构造器,减少重复代码的编写

2、达到这一点的关键在于this关键字

3、尽管可以使用this关键字调用另一个构造器,但是不能调用两个

4、构造器调用位置必须在最起始位置,否则报错

三、基本类型与对象初始化

1、方法局部变量与类变量

方法局部变量:

例如定义:int i;

如果未进行初始化则会报错

类变量:

例如定义: int i;

如果未进行初始化,则会进行i=0的初始化,基本数据类型都有自己对应的默认数值

2、指定初始化

直接赋值:在定义类成员变量的地方为其赋值(基本类型和对象都适用)

如果对象没有进行初始化就直接适用,则会报错(运行期报错)

3、初始化顺序

在类的内部,变量定义的先后顺序决定了初始化的顺序。即使变量散布于方法定义之间,他们仍旧会在任何方法(包括构造器)被调用之前得到初始化

4、静态数据初始化

如果一个域是静态的基本类型域,那么他的默认初始化就是标准类型的初始值,如果他是一个对象,那么他的初始值就是null

5、静态代码块

当首次通过生成这个类的时候或者首次访问静态数据的时候会创建

6、非静态实例初始化

与静态初始化子句一模一样,只是缺少static关键字

7、数组初始化

分类: Java

0 条评论

发表评论

电子邮件地址不会被公开。