2
我有这样的事情:分配实例变量静态变量
public class Test {
public static MyObject o4All = null;
public MyObject o4This = null;
public void initialize() {
// create an instance of MyObject by constructor
this.o4This = new MyObject(/* ... */);
// this works, but I am wondering
// how o4All is internally created (call by value/reference?)
Test.o4All = this.o4This;
}
}
我知道,我应该指定,或者仅被一个静态方法来改变一个静态变量。但根据java-docs(http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html),我可以使用对象引用。
类方法不能访问实例变量或实例方法 直接-它们必须使用一个对象引用。
如果我更改o4This的属性,该怎么办? o4All的财产是否也会间接改变?
您不会将变量*赋值给变量,而是将变量的对象引用赋值给变量。这是一个很大的区别,理解这将帮助你理解你的程序的行为和Rohit Jain的建议。 – 2013-02-08 17:35:50