A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Mydream524 于 2014-12-19 23:21 编辑

如下代码,结果为11,这说明w2.size调用的是地址值然后赋给s,而后s有了指向所以得到如下结果么。
  1. class Wrench2
  2. {
  3.         int size;
  4.         public static void main(String[] args)
  5.         {
  6.                 Wrench2 w = new Wrench2();
  7.                 w.size = 11 ;
  8.                 Wrench2 w2 = go(w, w.size);
  9.                 System.out.println(w2.size);               
  10.         }

  11.         static Wrench2 go(Wrench2 wr, int s)
  12.                 {
  13.                         s = 12;
  14.                         return wr;
  15.                 }
  16. }
复制代码

3 个回复

倒序浏览
自己赞一个.{:3_50:}
回复 使用道具 举报
个人认为  你只是把对象wr当作参数传给了go方法  对于wr未做任何修改 就返回去了
System.out.println(w2.size); 中的size调用的是类class Wrench2 中的那个变量

8.png (16.04 KB, 下载次数: 5)

8.png
回复 使用道具 举报
本帖最后由 姿_`态 于 2014-12-14 13:39 编辑

把11赋值给了s.size 然后把s.size给了s, s=12;也就是11=12 ,size没有任何改变。
所以返回的wr的size还是成员的size,但是手动给他赋值,结果就变了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马