专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Java相关

java解决方法

发布时间:2010-06-05 14:17:21 文章来源:www.iduyao.cn 采编人员:星星草
java
class B {
int num=5;//原值
}
public class exp2_7 {
public static void main(String[] args){
int a=2;
func1(a);//改变
System.out.println(a==2);//与原值比较

B b=new B ();
func2(b);//改变
System.out.println(b.num==5);//与原值比较
}

static void func1(int t){
t++;//改变基本类型的数据.
}
static void func2(B t){
t.num++;//改变对象中的数据.
}
}
这个算法的结果是?怎么来的

------解决方案--------------------
true false


------解决方案--------------------
答案是true false ,你对参数传递方式只有一种理解的有问题,我看java编程思想的时候作者也不太想争论这一点,false的结果也很容易解释,在执行方法的时候复制了指向B对象的引用,然后通过这个引用改变了B对象的值,原来B对象的引用没有改变,引用的对象没变,但是对象本身值改变

非得说参数本身不受影响也就是只B对象的引用指向没变
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: