如何在不创建新对象的情况下从另一个类访问变量

时间:2014-03-25 06:10:47

标签: java class variables

我过长的标题说明了一切......我希望能够在不创建新对象的情况下从另一个类访问变量。

目前,我知道如何访问另一个类的变量的唯一方法是:

Control control = new Control;

int dirtCount = control.dirtCount;

但是,如果我想在我的污垢对象中访问此变量,我将不得不为每个变量创建一个新的Control对象。这创造了一个无尽的循环...

如何在不创建新对象的情况下访问变量?

(如果你想查看我的其余代码,我可以发布它。我认为这部分是最相关的:))

3 个答案:

答案 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)类变量 - 它们属于类意味着每个对象可以共享同一个变量,并且可以按类名访问

Member variables in java

答案 2 :(得分:0)