【发布时间】:2017-01-18 13:44:33
【问题描述】:
给定下面的代码:
public class A {
private int i = 6;
private int j = i;
public A() {
i = 5;
}
public static void main(String[] args) {
A a = new A();
System.out.println(a.i + a.j);
}
}
为什么这个加法的输出是 11 而不是 10?据我了解,构造函数在静态变量和实例变量初始化后最后运行。因此,如果构造函数是最后一个被触发的,它应该将 i 和 j 都设置为 5,因为它们指向相同的数字。有人可以逐步解释这里发生的事情,以便执行后值为 11。任何反馈将不胜感激。
【问题讨论】:
标签: java variables constructor initialization