我的标题太长了,说明了一切……我希望能够在不创建新对象的情况下从另一个类访问变量。
目前,我知道如何访问另一个类的变量的唯一方法是:
Control control = new Control;
int dirtCount = control.dirtCount;
但是,如果要在我的灰尘对象中访问此变量,则必须为每个对象创建一个新的Control对象。这创造了一个无尽的循环...
如何在不创建新对象的情况下访问变量?
(如果您想查看其余的代码,可以将其发布。我认为这部分是最相关的:))
一种方法是将该变量声明为static
,这意味着它是一个类变量(与实例变量不同)。从Java教程(重点是我的):
它们与类关联,而不与任何对象关联。该类的每个实例共享一个类变量,该变量位于内存中的一个固定位置。任何对象都可以更改类变量的值,但是也可以在不创建类实例的情况下操纵类变量。
在Control
课堂上:
public class Control {
public static int dirCount;
// ...
}
您可以在不创建实例的情况下使用它:
int dirCount = Control.dirCount;
注意:
如果希望该变量为private
您可以定义一个static
getter方法:
public static int getDirCount() {
return dirCount;
}
你可以用
int dirCount = Control.getDirCount();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句