静的フィールドについての私の理解は、その最後の割り当ては、クラス内のどこにある場合でも、そのフィールドの値がどうなるかということです。ただし、最後から2番目の印刷ステートメントが6ではなく30を印刷することを期待していたため、私の理解は明らかに確固たるものではありません。なぜ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
}
}