实例变量初始化方式有以下3种:
1.非静态块中初始化;
2.声明时初始化;
3.构造器中初始化;
测试:
package com.skymr.learn;
/**
* 实例变量初始化顺序测试
* @author skymr
*
*/
public class InstanceTest1 {
public InstanceTest1(){
a = 2;
System.out.println("构造器");
}
{
a = 1;
System.out.println("非静态块1");
}
private int a = 3;
public void print(){
System.out.println(a);
}
public static void main(String[] args) throws Exception{
new InstanceTest1().print();
}
}
非静态块1
构造器
2
测试证明:1,2优先于3执行,且不受代码顺序影响
再测试:
package com.skymr.learn;
/**
* 实例变量初始化顺序测试
* @author skymr
*
*/
public class InstanceTest1 {
public InstanceTest1(){
System.out.println("构造器");
}
{
a = 1;
System.out.println("非静态块1");
}
private int a = 3;
public void print(){
System.out.println(a);
}
public static void main(String[] args) throws Exception{
new InstanceTest1().print();
}
}
结果:
非静态块1
构造器
3
测试证明:1,2的顺序根据代码排列顺序.