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

htm*_*gh5 3 java variables class

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

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

Control control = new Control;

int dirtCount = control.dirtCount;
Run Code Online (Sandbox Code Playgroud)

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

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

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

Chr*_*ian 12

一种方法是将变量声明为static,这意味着它是一个类变量(它与实例变量不同).从Java Tutorial(强调我的):

它们与类相关联,而不是与任何对象相关联.该类的每个实例共享一个类变量,该变量位于内存中的一个固定位置.任何对象都可以更改类变量的值,但也可以在不创建类实例的情况下操作类变量.

Control课堂上:

public class Control {
    public static int dirCount;
    // ...
}
Run Code Online (Sandbox Code Playgroud)

并且您可以在不创建实例的情况下使用它:

int dirCount = Control.dirCount;
Run Code Online (Sandbox Code Playgroud)

注意:

如果您想要该变量,private您可以定义一个staticgetter方法:

public static int getDirCount() {
    return dirCount;
}
Run Code Online (Sandbox Code Playgroud)

你可以用这个方法调用

int dirCount = Control.getDirCount();
Run Code Online (Sandbox Code Playgroud)