Java简单练习

时间:2013-06-14 12:16:34

标签: java

我被困在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

你能告诉我为什么“a.x”给出输出“2”?
这是如何计算的?

4 个答案:

答案 0 :(得分:7)

由于astatic,这意味着所有 FindVariables个实例共享一个 a。< / p>

因此,当你这样做时:

b.x=2;

然后a.x也是2

答案 1 :(得分:0)

这是因为x是静态变量。每个实例仅对该类没有任何价值。

答案 2 :(得分:0)

变量是静态的。这意味着变量属于类的范围,而不是对象。

答案 3 :(得分:0)

static添加到变量时,

  

您宣布变量归类

所有

而不是任何实例(即使您可以使用引用变量引用它们)。

因此,这意味着在引用它的所有对象中只存在变量a的单个副本。因此,使用a还是b更改值是否正在编辑同一副本。