假設我有一個類和構造函數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不具有引用傳遞。它通過價值傳遞參考,而這正在導致您遇到的問題。 –