【发布时间】:2015-02-05 21:03:56
【问题描述】:
我对 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());
}
如您所见,我使用InnerObject 作为参数创建了OuterObject。现在我想知道:
我是否从 return 语句中得到两个新对象,
还是只是一个新的OuterObject 副本,但对现有InnerObject 的引用相同?
【问题讨论】:
标签: java oop pass-by-reference pass-by-value objectinstantiation