[問題] 傳物件問題

看板java作者 (濕濕)時間7年前 (2017/12/24 03:02), 編輯推噓1(109)
留言10則, 5人參與, 7年前最新討論串1/1
大家都知道java傳物件是傳參考 但是剛才遇到一個問題 我把某個物件c1傳到某個方法A 在A裡面把另外一個同型態的物件assignment給c1(不是物件成員 是整個物件) 但是在原本呼叫A的方法中c1還是c1 物件的成員可以這樣子assignment 但是今天才知道整個物件不能這樣子assignment 想請問有人知道在java內部是如何運作的嗎 (怕觀念有誤馬上用手機問一下 如果不明白的話我會在補上code) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.22.18.56 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1514055749.A.A6D.html

12/24 03:23, 7年前 , 1F
java傳物件不是傳參考,是複製一份參考(在C/C++中叫指標的)
12/24 03:23, 1F

12/24 03:24, 7年前 , 2F
方法中的變數(不論數值類型還是參考類型)怎麼改都不影響呼
12/24 03:24, 2F

12/24 03:24, 7年前 , 3F
叫的地方
12/24 03:24, 3F

12/24 03:39, 7年前 , 4F
但是我在方法中改物件的成員變數 實際上也被改變了
12/24 03:39, 4F

12/24 03:56, 7年前 , 5F
物件的成員變數是物件的成員變數,不是方法的區域變數
12/24 03:56, 5F

12/24 06:43, 7年前 , 6F

12/24 06:45, 7年前 , 7F
你給的那個已經是另一個instance
12/24 06:45, 7F

12/24 07:38, 7年前 , 8F
想像手中本來有個箭頭指某一物件,換指另一物件。
12/24 07:38, 8F

12/24 12:48, 7年前 , 9F
接樓上的比喻, 函式外的箭頭跟函式內的箭頭不是同一個
12/24 12:48, 9F

12/26 02:26, 7年前 , 10F
懂了 謝謝各位
12/26 02:26, 10F
文章代碼(AID): #1QFgX5fj (java)
文章代碼(AID): #1QFgX5fj (java)