クラス変数についてはかなり混乱しています。私は Java Doc チュートリアルを見ています。彼らは静的変数とメソッドを説明しましたが、概念の 1 つがよくわかりません。彼らは私たちにいくつかのコードを与え、どのような答えが得られるかを尋ねました。
コードが完全に正しいわけではないことに注意してください。プログラムを実行することではなく、静的変数の概念を把握すること
コードは次のとおりです。
public class IdentifyMyParts {
public static int x = 7;
public int y = 3;
}
上記の次のコードから、コードの出力は次のとおりです。
IdentifyMyParts a = new IdentifyMyParts(); //Creates an instance of a class
IdentifyMyParts b = new IdentifyMyParts(); //Creates an instance of a class
a.y = 5; //Setting the new value of y to 5 on class instance a
b.y = 6; //Setting the new value of y to 6 on class instance b
a.x = 1; //Setting the new value of static variable of x to 1 now.
b.x = 2; //Setting the new value of static variable of x to 2 now.
System.out.println("a.y = " + a.y); //Prints 5
System.out.println("b.y = " + b.y); //Prints 6
System.out.println("a.x = " + a.x); //Prints 1
System.out.println("b.x = " + b.x); //Prints 2
System.out.println("IdentifyMyParts.x = " + IdentifyMyParts.x);
//Prints2 <- This is because the static variable holds the new value of 2
//which is used by the class and not by the instances.
System.out.println("ax = " + ax); と表示されているため、何か不足していますか? // 1 を出力すると、実際には 2 が出力されます。