看板 java 關於我們 聯絡資訊
※ 引述《Lordaeron (Terry)》之銘言: : ※ 引述《adrianshum (Alien)》之銘言: : : [43] : : 推文等太久,乾脆回文。 : : 把它理解為 "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? http://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_value http://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_reference 而 value 及 reference 兩個單字在 java 裡的意思, 和 pass-by-value & pass-by-reference 並無直接關係, 請 不要混淆視聽 btw, 這些定義, google 一下就找得到了, 你不 要每次都伸手牌要人找給你好嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.238.156.189 ※ 編輯: adrianshum 來自: 61.238.156.189 (03/01 18:36) ※ 編輯: adrianshum 來自: 61.238.156.189 (03/01 19:22)
ogamenewbie:請冷靜, 減少情緒化用詞, 感謝您. 03/01 21:00
adrianshum:其實我蠻冷靜耶, 只是l君經常叫人給def 03/02 10:29