如何在不创建新对象的情况下从另一个类访问变量
我过长的标题说明了一切……我希望能够在不创建新对象的情况下从另一个类访问变量。
目前,我知道如何访问另一个类的变量的唯一方法是:
Control control = new Control; int dirtCount = control.dirtCount;
但是,如果我想在我的污垢对象中访问此变量,我将不得不为每个变量创建一个新的Control对象。 这创造了无尽的循环……
如何在不创建新对象的情况下访问变量?
(如果你想查看我的其余代码,我可以发布它。我认为这部分是最相关的:))
一种方法是将变量声明为static
,这意味着它是一个类变量 (它与实例变量不同)。 从Java Tutorial (强调我的):
它们与类相关联,而不是与任何对象相关联。 该类的每个实例共享一个类变量,该变量位于内存中的一个固定位置。 任何对象都可以更改类变量的值,但也可以在不创建类实例的情况下操作类变量 。
在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();
在java中,类可以有两种类型的成员变量
1)实例变量 – 它们是用该类的每个对象创建的,并且可以由该类的对象访问。
2)类变量 – 它们属于类意味着每个对象可以共享同一个变量,并且可以通过类名访问
是的,你必须阅读一些静态变量。 您可以在http://www.caveofprogramming.com/frontpage/articles/java/java-for-beginners-static-variables-what-are-they/查看。