前言
在面向对象的编程语言中,了解对象初始化的步骤有利于我们更好地写成代码。
一、对象初始化步骤
- 父类静态变量、静态代码块初始化
- 子类静态变量、静态代码块初始化
- 父类变量、代码块初始化
- 父类构造方法
- 子类变量、代码块初始化
- 子类构造方法
注意:
1:所有的静态变量,静态代码块只会在第一次创建对象时进行初始化
2:变量和代码块的初始化过程是按照在类中定义的顺序执行的,如变量a,代码块b,变量c,则初始化过程为a->b->c,不是a->c->b(静态变量和静态代码块同理)
二、实例
注意public Father()和public Son()两行的注释。
class Father{
public int num2=4;//5
public Father(){
//调用构造方法时转到5,去完成变量和代码块的初始化,结束后执行7
//7
System.out.println("父类构造函数初始化");
}
{
//6
System.out.println("父类代码块初始化");
}
static {
//1
System.out.println("父类静态代码块初始化");
}
public