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

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

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

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

java中的成员变量

是的,你必须阅读一些静态变量。 您可以在http://www.caveofprogramming.com/frontpage/articles/java/java-for-beginners-static-variables-what-are-they/查看。