- 默认初始化:开辟空间时初始化.
- 显示初始化:直接给属性进行赋值.
- 构造初始化: 在构造方法中对属性进行赋值.
这三种初始化到底谁在前谁在后,顺序如何呢?
答案是:默认初始化 --》 显式初始化 —》 构造初始化
我们来分析:
public class 属性的初始化 {
public static void main(String[] args) {
A a =new A(20);
}
}
class A{
int m = setM() ;//属性
public A(int m) {
System.out.println("构造初始化之前,m的值为:"+this.m);
this.m = m;
System.out.println("构造初始化之后,m的值为:"+this.m);
}
public int setM() {
System.out.println("显式初始化之前,m的值为"+this.m);
return 17;
}
}
结果为:
显式初始化之前,m的值为0
构造初始化之前,m的值为:17
构造初始化之后,m的值为:20