假设我有一个类和构造函数TestClass
。传递对象给构造函数传递参考
public class TestClass {
Foo foo;
public TestClass(Foo foo) {
this.foo = foo;
}
}
这里,构造函数接受一个对象,它是Foo
类的一个实例。假设我的static void main(String[] args)
执行以下操作,与TestClass
完全分开;
(1)实例化
foo
(2)通实例
foo
到TestClass
构造(3)变更内部状态的
foo
步骤之后( 3),将foo
范围内的我的TestClass
的实例的状态有变化吗?
你也可以自己写一个小程序,虽然我会承认*为什么*发生这种事情不一定是你可以通过尝试小例子来学习的东西。 –
@ DennisMeng这是真的,但是自己做这件事不会泄露经验丰富的回答者可以覆盖的任何边缘情况。 – user2763361
回答您的称号,Java不具有引用传递。它通过价值传递参考,而这正在导致您遇到的问题。 –