public class test1{ private int i = getValue(); private int j = 10; int getValue(){ return j; } public static void main(String[] args){ System.out.print(new test1().i); } }执行结果为0
public class test2 { private int j = 10; private int i = getValue(); int getValue(){ return j; } public static void main(String[] args){ System.out.print(new test2().i); } } 执行结果为10
因为给i赋值的时候j还是默认值0。
如果j在i前面定义,就是10。
private int i = getValue();
private int j = 10;
int getValue(){
return j;
}
public static void main(String[] args){
System.out.print(new test1().i);
}
}执行结果为0
private int j = 10;
private int i = getValue();
int getValue(){
return j;
}
public static void main(String[] args){
System.out.print(new test2().i);
}
}
执行结果为10
i=0;
j=0;
}
分别为 i,j初始化,不要被 getValue()方法诱惑,因为这里只用到了 new test(),它调用了构造方法,