初始化顺序
知道初始化是什么不知道顺序直接看这个便可以了。初始化概念翻下文。一言蔽之:
- 父类静态变量
- 父类静态块
- 子类静态变量
- 子类静态块
- 父类普通变量
- 父类普通变量
- 子类普通变量
- 子类普通块
什么是初始化
初始化这个术语是对谁而言的
Java中初始化的作用对象分别为:
- 变量
- 块
- 构造器
对变量而言
初始化就是给它一个初始值。
要注意类中成员变量有静态成员变量和普通成员变量两种,看下例。
class Demo {
private static Integer staticVar;//静态成员变量staticVar初始化就是将它值设置为null的过程
private Integer normalVar;//普通成员变量staticVar初始化就是将它值设置为null的过程
}
对块而言
初始化就是讲它囊括的代码执行一遍。
要注意类中块有静态块和普通块两种,看下例。
class Demo {
static {//静态块
printAndReturnInt("静态块");//static内只有这一个方法,static初始化就是将这个printAndReturn方法执行一遍
}
{//普通块
printAndReturnInt("普通块");//普通块内只有这一个方法,static初始化就是将这个printAndReturn方法执行一遍
}
public static int printAndReturnInt(String name) {
System.out.println(name + "调用了这个返回1的方法");
return 1;
}
}
对构造器而言
初始化就是执行这个构造器,看下例。
class Demo {
public Demo() {
System.out.println("Demo的构造器执行");//构造器初始化就是执行完这个构造函数
}
}