-1

私はJavaの演習に行き詰まっているので、助けていただければ幸いです。

与えられた演習は次のとおりです。

Public class FindVariables{
                Public static int x=7;
                Public int y=3;
}
FindVariables a=new FindVariables ();
FindVariables b= new FindVariables ();
a.x=1;
a.y=5;
b.x=2;
b.y=6;
System.out.println(“a.x=”+a.x);
System.out.println(“a.y=”+a.y);
System.out.println(“b.x=”+b.x);
System.out.println(“b.x=”+b.y);

与えられた出力は次のとおりです。

a.x=2
a.y=5
b.x=2
b.y=6

「ax」が「2」を出力する理由を教えてください。
これはどのように計算されていますか?

4

4 に答える 4

7

aisstaticであるため、すべてのインスタンス が単一のFindVariablesを共有することを意味します。 a

したがって、これを行う場合:

b.x=2;

それからもa.xそう2です。

于 2013-06-14T12:18:15.187 に答える
0

static変数に追加すると、

変数がクラスによって所有されていることをアナウンスします

インスタンスによってではありません(参照変数を使用してそれらを参照することはできますが)。

aしたがって、変数を参照するすべてのオブジェクトに変数のコピーが 1 つしか存在しないことを意味します。したがって、を使用して値を変更するかab同じコピーを編集しているかどうか。

于 2013-06-14T12:49:04.387 に答える
0

xが静的変数だからです。クラスのみの各インスタンスに値はありません。

于 2013-06-14T12:18:34.773 に答える