黑马程序员技术交流社区
标题:
当两个引用变量指向同一个地址值,修改其中一个值会有.....
[打印本页]
作者:
Mydream524
时间:
2014-12-14 12:54
标题:
当两个引用变量指向同一个地址值,修改其中一个值会有.....
本帖最后由 Mydream524 于 2014-12-19 23:21 编辑
如下代码,结果为11,这说明w2.size调用的是地址值然后赋给s,而后s有了指向所以得到如下结果么。
class Wrench2
{
int size;
public static void main(String[] args)
{
Wrench2 w = new Wrench2();
w.size = 11 ;
Wrench2 w2 = go(w, w.size);
System.out.println(w2.size);
}
static Wrench2 go(Wrench2 wr, int s)
{
s = 12;
return wr;
}
}
复制代码
作者:
Mydream524
时间:
2014-12-14 12:56
自己赞一个.{:3_50:}
作者:
Mr.陈
时间:
2014-12-14 13:14
个人认为 你只是把对象wr当作参数传给了go方法 对于wr未做任何修改 就返回去了
System.out.println(w2.size); 中的size调用的是类class Wrench2 中的那个变量
8.png
(16.04 KB, 下载次数: 23)
下载附件
2014-12-14 13:14 上传
作者:
姿_`态
时间:
2014-12-14 13:38
本帖最后由 姿_`态 于 2014-12-14 13:39 编辑
0.jpg
(93.27 KB, 下载次数: 31)
下载附件
2014-12-14 13:39 上传
[attach]60850[/attach]把11赋值给了s.size 然后把s.size给了s, s=12;也就是11=12 ,size没有任何改变。
所以返回的wr的size还是成员的size,但是手动给他赋值,结果就变了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2