Java尽力保证:所有变量在使用前都能得到适当的初始化。
结果输出:
在定义类成员变量的地方为变量赋值
同样的方式初始化非基本类型的对象
调用方法来初始值
无法阻止自动初始化的进行,它将在构造器被调用之前发生。
结果:
初始化顺序
在类的内部,变量定义的先后顺序决定了初始化的顺序。
静态数据的初始化
无论创建多少个对象,静态数据都只占用一份存储区域。
静态初始化只有在必要的时候才会进行。
初始化顺序是:静态对象-->非静态对象。
对象创建的过程
假设有个名为Dog的类:
显示的静态初始化
Java允许将多个静态初始化动作组织成一个特殊的"静态块"
非静态实例初始化
实例初始化:用于初始化每一个对象的非静态变量。