当前位置:首页 > 壁挂炉 > 文章正文

java中的:数据传递

编辑:[db:作者] 时间:2024-08-25 00:07:53

示例:

java中的:数据传递

public class Test { void methodOne() { int localVar = 42; methodTwo(localVar); // 通报的是 localVar 的值副本 System.out.println("localVar after methodTwo: " + localVar); // 输出: 42 } void methodTwo(int value) { value = 100; // 修正的是参数的副本 }}

在上述所举示例当中,localVar 的值通报给了 methodTwo。
methodTwo 中对 value 的修正不会影响 methodOne 中的 localVar。
localVar 的值保持不变。

引用通报(工具类型):

如果通报的是工具(如数组、字符串、用户定义的类工具等),则通报的是工具的引用(指针)。
在方法中修正工具的内容(如修正工具的字段)会影响原始工具,由于工具的引用指向同一个工具实例。
但如果重新给参数赋值(例如将参数重新指向另一个工具),不会改变原始工具的引用。

示例:

public class Test { class Data { int value; } void methodOne() { Data data = new Data(); data.value = 42; methodTwo(data); // 通报的是 data 工具的引用 System.out.println("data.value after methodTwo: " + data.value); // 输出: 100 } void methodTwo(Data data) { data.value = 100; // 修正的是 data 工具的内容 data = new Data(); // 重新赋值不会影响 methodOne 中的 data 引用 }}

在上述所举示例当中,data 工具的引用被通报给了 methodTwo。
methodTwo 修正了 data.value,这会影响 methodOne 中的 data 工具内容。
methodTwo 重新给 data 赋值并不会改变 methodOne 中的 data 引用。

总结:

基本数据类型的值通报不会影响原始局部变量,由于它们通报的是值的副本。
工具类型的引用通报许可在方法中修正工具的内容,但不会影响局部变量的生命周期或引用。
如果在方法中重新赋值参数,不会影响原始工具的引用。

本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除,如需转载请保留原文地址:http://www.baanla.com/bgl/39069.html

XML地图 | 自定链接

Copyright 2005-20203 www.baidu.com 版权所有 | 琼ICP备2023011765号-4 | 统计代码

声明:本站所有内容均只可用于学习参考,信息与图片素材来源于互联网,如内容侵权与违规,请与本站联系,将在三个工作日内处理,联系邮箱:123456789@qq.com