创建对象时的初始化顺序
- 系统会对数据成员进行默认初始化
- 执行数据成员定义处的初始化语句
- 调用构造方法为数据成员指定初值
class IntClass{
int value;//自动初始化,默认值为0
//int value=5;//在定义时指定初值
public IntClass(){}
//定义构造方法将属性value初始化
public IntClass(int val){
value=val;
}
}
class IntClassConstructor{
public static IntClass getInstance(){
//调用构造方法,从而省略了s.value代码
IntClass s=new IntClass(8);
//s.value=8;
return s;
}
public static void main(String[] args){
IntClass a=new IntClass();
System.out.println(a.value);
a=getInstance();
System.out.println(a.value);
}
}
输出:
0
8