ObjectReference.VariableName是什么意思?

时间:2017-09-18 13:33:36

标签: java

我不明白这一部分:

可以通过调用类中的变量名来直接访问实例变量。但是,在静态方法中(当实例变量具有可访问性时),应使用完全限定名称调用它们。 ObjectReference.VariableName。

你能举个例子吗?

2 个答案:

答案 0 :(得分:1)

静态方法是在不引用该对象的实例的情况下调用的方法。因此,不能静态调用实例变量,因为每个实例都有自己的值。因此,在静态方法中,您需要一个对象的特定实例,以便知道您尝试使用的实例变量的值。

答案 1 :(得分:0)

区别在于您如何访问这些变量:

class myClass {
public static int staticVar;
public int nonStaticVar;
//Constructor initialises both
}

静态方法:

int otherVariable = MyClass.staticVar;

如您所见,对于静态变量,您不需要使对象访问它。请注意,你可以设想一个静态变量来获得特征"每个类#34;这意味着你不能拥有2个版本的staticVar。

非静态(实例变量):

MyClass instanceOfMyClass = new myClass();
int otherVariable2 = instanceOfMyClass.nonStaticVar;

要拥有2个版本的nonStaticVar,您可以简单地创建2个对象,并在2个对象中为此变量赋予不同的值。请注意,在这种情况下,您必须创建一个对象。