我正在学习Java并编写下面的简单代码:
public class Test {
private int a = b;
private final static int b = 10;
public int getA() {
return a;
}
}
public class Hello {
public static void main(String[] args) {
Test test = new Test();
System.out.println(test.getA());
}
}
Run Code Online (Sandbox Code Playgroud)
结果:10.做得好!它运行成功,没有错误.
任何人都可以解释为什么我可以在声明它之前分配一个静态变量?
分配
private int a = b;
Run Code Online (Sandbox Code Playgroud)
在创建新实例时Test(就在调用构造函数之前)发生.
静态变量的声明和初始化b发生在创建实例之前,加载类时.
语句的顺序无关紧要,因为静态变量总是先被初始化.