看板java
標 題Re: [問題] 初學者的幾點小疑問
發信站南大計中 (Sun Jan 21 21:26:07 2007)
轉信站ptt!ctu-reader!ctu-gate!news.nctu!news.nsysu!news.mksh.phc!news.ccns.n
※ 引述《[email protected]》之銘言:
> > Letter x= new Letter();
> > x.c= 'a';
> > System.out.println("1:x.c: "+x.c);
> > f(x);
> > System.out.println("2:x.c: "+x.c);
> > }
> > }
> > 問題3: 為何第二次的輸出 x.c的字元是Z 而不是a 呢?
> > ps: 如果有有違反板規請告知 我會自d的(因為不知算不算是作業文^^u)
> 因為方法f是call by reference (?)
java 永遠傳遞變數的複本
會改變的原因是因為這不是一個 immutable object
object reference 持有物件,只要能操作 reference
並且不是以 immutable 設計基礎,即可以改變物件的內容。
--
╭╮╮╭ ╮╭┬╮╭╮╮ ╭────‧★☆ NUTN-BBS ☆★‧────╮
│╰││ │ │ │╰│ 臺 南 大 學 ⊙ 南 大 計 中
╰ ╯╰─╯ ┴ ╰ ╯ ╰───‧ ( bbs.nutn.edu.tw ) ‧───╯
Author: qrtt1 從
163.26.34.247 發表