Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ObjectReference.VariableName是什么意思? 我不明白这部分:_Java - Fatal编程技术网

Java ObjectReference.VariableName是什么意思? 我不明白这部分:

Java ObjectReference.VariableName是什么意思? 我不明白这部分:,java,Java,实例变量可以通过调用类内的变量名直接访问。但是,在静态方法中(当实例变量具有可访问性时),应该使用完全限定名来调用它们。ObjectReference.VariableName 你能举个例子吗?静态方法是在不引用该对象实例的情况下调用的方法。因此不能静态调用实例变量,因为每个实例都有自己的值。因此,在静态方法中,您需要一个对象的特定实例,以便知道您尝试使用的实例变量的值 区别在于如何访问这些变量: class myClass { public static int staticVar; publ

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


你能举个例子吗?

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

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

class myClass {
public static int staticVar;
public int nonStaticVar;
//Constructor initialises both
}
静态方法:

int otherVariable = MyClass.staticVar;
如您所见,对于静态变量,您不需要创建对象来访问它。请注意,您可以想象一个静态变量具有“每个类一次”的特性,这意味着您不能有两个版本的staticVar

非静态(实例变量):


要拥有两个版本的NonStativar,只需创建两个对象,并在这两个对象中为该变量指定不同的值。请注意,在这种情况下,您必须创建一个对象。

“您能给出一个示例吗”可能是所有编写过的Java代码。您不了解其中的哪一部分?您确实需要了解编程的基本原理事实上,@ohgodspider,这是对静态变量的引用,不是从静态方法中复制到实例变量。
MyClass instanceOfMyClass = new myClass();
int otherVariable2 = instanceOfMyClass.nonStaticVar;