JAVA里面方法调用时传对象参数的陷阱的防止

JAVA里面方法调用时传对象参数的陷阱的防止

ID:41028601

大小:32.00 KB

页数:5页

时间:2019-08-14

JAVA里面方法调用时传对象参数的陷阱的防止_第1页
JAVA里面方法调用时传对象参数的陷阱的防止_第2页
JAVA里面方法调用时传对象参数的陷阱的防止_第3页
JAVA里面方法调用时传对象参数的陷阱的防止_第4页
JAVA里面方法调用时传对象参数的陷阱的防止_第5页
资源描述:

《JAVA里面方法调用时传对象参数的陷阱的防止》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、JAVA里面方法调用时传对象参数的陷阱的防止  其实问题的核心,就是参数虽然是传的引用,但参数就是参数,他自身是一个本地的局部引用而已,只不过在这个时刻和调用者指向了同一个对象。但并不代表这个局部引用在整个方法调用期间内能始终和调用者保持一致。  下面是2个测试,分别测试可修改的Object和不可修改的  /**  *JAVA里面对象参数的陷阱  */  publicclassTest{  publicstaticvoidmain(String[]args){  TestValuetv=newTestValue();  tv.first();  TestIntegerti=ne

2、wTestInteger();  ti.first();  }  }  classTestValue{  classValue{  publicinti=15;  }  //初始化  Valuev=newValue();  publicvoidfirst(){  //当然是15  System.out.println(v.i);  //第一次调用  second(v);  System.out.println(v.i);  third(v);  System.out.println(v.i);  }  publicvoidsecond(Valuev){  //此时这里的v是一个

3、局部变量  //和类属性的v相等  System.out.println(v==this.v);  v.i=20;  }  publicvoidthird(Valuev){  //重新设置一个对象  v=newValue();  //此时这里的v也是一个局部变量  //但和类属性的v已经不相等了  //修改这个v指向对象的数值,已经不影响类里面的属性v了。  System.out.println(v==this.v);  v.i=25;  }  }  classTestInteger{  //初始化  Integerv=newInteger(15);  publicvoidfi

4、rst(){  //当然是15  System.out.println(v);  //第一次调用  second(v);  System.out.println(v);  third(v);  System.out.println(v);  }  publicvoidsecond(Integerv){  //此时这里的v是一个局部变量  //和类属性的v相等  System.out.println(v==this.v);  //但这一句和前面的不同,虽然也是给引用赋值,但因为Integer是不可修改的  //所以这里会生成一个新的对象。  v=20;  //当然,他们也不再相等

5、  System.out.println(v==this.v);  }  publicvoidthird(Integerv){  //重新设置一个对象  v=newInteger(25);  //此时这里的v也是一个局部变量  //但和类属性的v已经不相等了  //修改这个v指向对象的数值,已经不影响类里面的属性v了。  System.out.println(v==this.v);  }  }  运行结果  15  true  20  false  20  15  true  false  15  false  15  希望这个例子能解开一些初学者的疑问。更多信息请访问:大家论

6、坛

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。