-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

因为astatic,这意味着所有 FindVariables实例共享一个 a

因此,当您这样做时:

b.x=2;

那么a.x也会如此2

于 2013-06-14T12:18:15.187 回答
0

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

于 2013-06-14T12:19:53.070 回答
0

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

于 2013-06-14T12:18:34.773 回答
0

当您添加static到变量时,

您宣布该变量归该类所有

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

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

于 2013-06-14T12:49:04.387 回答