5.9 初始化块 5.9.1 使用初始化块

5.9 初始化块

与构造器作用非常类似的是初始化块,它也可以对Java对象进行初始化操作。

5.9.1 使用初始化块

初始化块是Java类里可出现的第4种成员(前面3中成员依次为成员变量方法构造器)。
一个类里可以有多个初始化块,相同类型的初始化块之间有顺序:前面定义的初始化块先执行,后面定义的初始化块后执行

初始化块的语法格式如下:

1
2
3
[修饰符] {
//初始化块的可执行性代码
}

初始化块可以有哪些修饰符

初始化块的修饰符只能是static,使用static修饰的初始化块被称为静态初始化块。初始化块里的代码可以包含任何可执行性语句,包括定义局部变量调用其他对象的方法,以及使用分支循环语句等。

初始化块先执行

当创建Java对象时,系统总是先调用该类里定义的初始化块,
如果定义了多个初始化块,则前面定义的初始化块先执行,后面定义的初始化块后执行。

没必要写多个普通初始化块

虽然Java允许一个类里定义多个普通初始化块,但这么做没有任何意义。完全可以把多个普通初始化块合并成一个初始化块,从而可以让程序更加简洁,可读性更强。

普通初始化块 和 实例变量的初始化 按源码顺序执行

普通初始化块、声明实例变量指定的默认值都可认为是对象的初始化代码,它们的执行顺序与源程序中的排列顺序相同。如果普通初始化块和实例变量初始化语句同时出现,则出现在后面的会覆盖前面设置的值.

先执行普通初始化块,再执行构造器