本帖最后由 依然超级赛亚人 于 2014-8-22 12:47 编辑
回答这道问题之前首先说明,我也不是真的确定我的说法是对的,只是提出自己的一种想方法仅供参考讨论,请楼主斟酌。
我想可能是你的变量定义和使用“分离了”。也就是说你在主方法中定义了s1和s2,但是你却在其他方法show()中使用它们,实际上你只是把在主方法中的两个变量s1和s2的地址值复制了一份去用,你虽然在show()中做了地址的变化,但是你并没有改变主方法下这两个变量的地址。也就是只在show()中你的这两个变量的地址值可以相等,打印出相同结果java----java。而你把打印语句写在主方法中,它当然还是主方法下的状态,这跟定义基本类型变量可能没区别。
比如你在main中定义了这条语句:
int a= 10,b=20;
你用show(int a,int b)封装了int sum;
sum=a+b;
a=b;
这几条语句,然后在main中调用show(a,b)和System.out.println(a+b);你认为会出现结果是40的情况吗?可以试试。
|