我对Java在方法参数中的引用/值传递有点困惑。
我在一个OuterObject
类中有一个构造函数:
private InnerObject io;
public OuterObject(InnerObject io){
this.io = io;
}
public InnerObject getInnerObject(){
return this.io;
}
如果我将一个传递给OuterObject
这样的复制方法:
InnerObject io = new InnerObject();
OuterObject o = new OuterObject(io);
anotherClass.getCopyOf(o);
在另一个班级:
public static OuterObject getCopyOf(InnerObject o){
return new OuterObject(o.getInnerObject());
}
正如你所看到的,我创建了OuterObject
作为InnerObject
参数的。现在我想知道:
我是从 return 语句中获得两个新对象,还是只是一个新OuterObject
副本但对现有对象的引用相同InnerObject
?