看板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 发表