看板 java 關於我們 聯絡資訊
各位好 我最近在練習java的時候突然想到一個問題 平常用function來取得一個object的attribute並儲存在一個local variable後 不論如何修改該local variable的數值 其存在於obeject裡的原值並不會改變 可是如果利用get()來取得一個list裡的object並存在local variable 再call任意該object的procedure來對attribute進行修改 其值會被永久改變 這是因為前例是將attribute的值複製並assign到local variable上 而後者是將local variable的pointer(?)指到list裡的object嗎? 不知道我理解的對不對 想找相關文章也不知道要搜尋什麼關鍵字 懇請版上大大開導 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 58.172.147.39 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1428825381.A.D54.html
ClareQ: 不對,只有primitive type傳值,Object傳reference存取 04/12 17:22
ClareQ: 希望你用程式碼例子來描述你預期的情況,不然僅描述看不懂 04/12 17:23
kuramu1108: 喔喔這樣講我懂了 謝謝 我的疑問就是只傳值還是refere 04/12 19:01
kuramu1108: nce 04/12 19:01