[英]Java Simple Excercise
我专心从事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”吗?
这是如何计算的?
因为a
是static
,这意味着所有 FindVariables
实例都共享一个 a
。
因此,当您执行此操作时:
b.x=2;
那么ax
也将是2
。
因为x是静态变量。 仅对于该类,每个实例都没有值。
该变量是静态的。 这意味着变量位于类的范围内,而不是对象的范围。
当您将static
添加到变量时,
您宣布该变量归该类所有
而不是任何实例(即使您可以使用引用变量来引用它们)。
因此,这将意味着在引用变量a
所有对象之间仅存在变量a
的单个副本。 因此,无论使用a
或b
更改值,您都在编辑同一副本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.