我过长的标题说明了一切......我希望能够在不创建新对象的情况下从另一个类访问变量。
目前,我知道如何访问另一个类的变量的唯一方法是:
Control control = new Control;
int dirtCount = control.dirtCount;
但是,如果我想在我的污垢对象中访问此变量,我将不得不为每个变量创建一个新的Control对象。这创造了一个无尽的循环...
如何在不创建新对象的情况下访问变量?
(如果你想查看我的其余代码,我可以发布它。我认为这部分是最相关的:))
答案 0 :(得分:12)
一种方法是将变量声明为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();
答案 1 :(得分:2)
在java中,一个类可以有两种类型的成员变量
1)实例变量 - 它们是用该类的每个对象创建的,并且可以由该类的对象访问。
2)类变量 - 它们属于类意味着每个对象可以共享同一个变量,并且可以按类名访问
答案 2 :(得分:0)