繁体   English   中英

Java简单练习

[英]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”吗?
这是如何计算的?

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

因此,当您执行此操作时:

b.x=2;

那么ax也将是2

因为x是静态变量。 仅对于该类,每个实例都没有值。

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

当您将static添加到变量时,

您宣布该变量归该类所有

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

因此,这将意味着在引用变量a所有对象之间仅存在变量a的单个副本。 因此,无论使用ab更改值,您都在编辑同一副本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM