【发布时间】:2013-10-21 02:37:18
【问题描述】:
假设我有一个名为 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 这是真的,但我自己这样做不会揭示任何有经验的回答者可以涵盖的边缘情况。
-
回答你的题目,Java 没有通过引用。但是,它通过值传递引用,这导致了您看到的问题。
标签: java constructor scope