作者Lordaeron (Terry)
看板java
标题Re: [问题] 请教一个基本的问题
时间Mon Mar 1 18:06:49 2010
※ 引述《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