对于如下代码:
public class Test{
public void test(){
System.out.println(n);
}
int n=2;
public static void main(String[] args){
new Test().test();
}
}
这样写可以通过编译并且可运行,在这种情况下java允许后声明变量,这是因为此时变量的使用一定在对象创建之后,而对象创建时会先初始化成员变量,所以语法上正确,语义上也正确。
public class Test{
int m=n;
int n=2;
public static void main(String[] args){
}
}