可以通过调用类中的变量名来直接访问实例变量。但是,在静态方法中(当实例变量具有可访问性时),应使用完全限定名称调用它们。 ObjectReference.VariableName。
你能举个例子吗?
答案 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个对象中为此变量赋予不同的值。请注意,在这种情况下,您必须创建一个对象。