Java:对象初始化过程
先看下面的代码图
注意:
1.对象已经创建,否则this.name会出现错误
2.已经存在了,否则this.name会出现错误
3.程序运行结果先输出张三,然后输出李四,可见一定先调用非静态代码块,再调用构造函数,并且调用非静态代码块时所创建对象的实例属性值为初始化值,或者是默认值(如果没有初始化)
用new创建并初始化对象步骤:
1.给对象的实例变量(非“常量”)分配内存空间,默认初始化成员变量;
2.成员变量声明时的初始化;
3.初始化块初始化(又称为构造代码块或非静态代码块);
4.构造方法初始化
蓝框框起的代码运行后,对象初始化过程如下图示:
1.给对象的实例变量分配空间,默认初始化成员变量
2.成员变量声明时的初始化
3.初始化块初始化
4.参构造方法初始化