Re: [問題] 請教一個基本的問題

看板java作者 (Terry)時間16年前 (2010/03/01 18:06), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串7/11 (看更多)
※ 引述《adrianshum (Alien)》之銘言: : ※ 引述《ERP2 (兩津)》之銘言: : [43] : : 這我可以理解,因為兩個a值參照的是不同物件。 : : 只是疑惑為什麼上一題的array沒有將結果指定回就可以保留運算結果。 : : 謝謝大家。 :) : : -- : : ◆ From: 118.167.172.8 : : → ERP2:自己回答一下: 是因為array是" call by reference"的嗎? 11/30 02:23 : : → etman395:是的 在java中 array是物件 只要是物件就是call by ref.. 11/30 02:50 : : → ERP2:謝謝你^^ 11/30 03:12 : 推文等太久,乾脆回文。 : 把它理解為 "obj 就是 call by ref" ,包準你會 : 在另一種情況下搞混。 : 例如: : void foo(String a) { : a += "foo"; : } : String x = "xxx"; : foo(x); : // x 的結果是什麼? : 很不幸,把東西說成 "物件就是 call by ref" : 對這種情況十居其九都會搞錯 : 何不好好理解一下 Java 自己的說法: Java 只有 pass-by-value. : object 傳的是 reference (或者理解為 handle, pointer etc) 的 : copy. 只為這個 copy 和原本的 reference 都是指向同一 object, : 所以修改 obj 的內容,caller 也會看得到. 都沒有定義以下的東西, 就在討論了? 這麼神奇? 給個定義吧: 什麼是reference? 什麼是value? 什麼是call by value? 什麼是call by reference? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.24.247.52
文章代碼(AID): #1BYv6z7E (java)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 7 之 11 篇):
文章代碼(AID): #1BYv6z7E (java)