作者ptt0720 (濕濕)
看板java
標題[問題] 傳物件問題
時間Sun Dec 24 03:02:26 2017
大家都知道java傳物件是傳參考
但是剛才遇到一個問題
我把某個物件c1傳到某個方法A 在A裡面把另外一個同型態的物件assignment給c1(不是物件成員 是整個物件)
但是在原本呼叫A的方法中c1還是c1
物件的成員可以這樣子assignment
但是今天才知道整個物件不能這樣子assignment
想請問有人知道在java內部是如何運作的嗎
(怕觀念有誤馬上用手機問一下 如果不明白的話我會在補上code)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.22.18.56
※ 文章網址: https://webptt.com/m.aspx?n=bbs/java/M.1514055749.A.A6D.html
1F:→ ssccg: java傳物件不是傳參考,是複製一份參考(在C/C++中叫指標的) 12/24 03:23
2F:→ ssccg: 方法中的變數(不論數值類型還是參考類型)怎麼改都不影響呼 12/24 03:24
3F:→ ssccg: 叫的地方 12/24 03:24
4F:→ ptt0720: 但是我在方法中改物件的成員變數 實際上也被改變了 12/24 03:39
5F:→ ssccg: 物件的成員變數是物件的成員變數,不是方法的區域變數 12/24 03:56
7F:→ jej: 你給的那個已經是另一個instance 12/24 06:45
8F:→ pttworld: 想像手中本來有個箭頭指某一物件,換指另一物件。 12/24 07:38
9F:推 LPH66: 接樓上的比喻, 函式外的箭頭跟函式內的箭頭不是同一個 12/24 12:48
10F:→ ptt0720: 懂了 謝謝各位 12/26 02:26