我对静态字段的理解是,它的最后一个赋值是该字段在类中的任何位置的值。但是,我的理解显然并不可靠,因为我希望倒数第二个打印语句打印 30,而不是 6。请帮助我理解为什么它打印 6。
public class Whatever
{
static int x = 2;
static int z;
public Whatever()
{
z = x*3;
}
public static void main(String[] args)
{
Whatever foo = new Whatever();
System.out.println(foo.z); //prints 6
Whatever.x = 10;
System.out.println(foo.x); // prints 10
System.out.println(foo.z); // prints 6 WHY?!?!
Whatever bar = new Whatever();
System.out.println(bar.z); // prints 30 as expected
}
}