电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

java值传递引用传递

java值传递引用传递_第1页
1/7
java值传递引用传递_第2页
2/7
java值传递引用传递_第3页
3/7
Java 代码 public class ParamTest { // 初始值为0 protected int num = 0; // 为方法参数重新赋值 public void change(int i) { i = 5; //不能改变 } // 为方法参数重新赋值 public void change(ParamTest t) { ParamTest tmp = new ParamTest(); tmp.num = 9; t = tmp; //不能改变 } // 改变方法参数的值 public void add(int i) { i += 10; //不能改变 } // 改变方法参数属性的值 public void add(ParamTest pt) { pt.num += 20; //改变 } public static void main(String[] args) { ParamTest t = new ParamTest(); System.out.println("参数--基本类型"); System.out.println("原有的值:" + t.num); // 为基本类型参数重新赋值 t.change(t.num); System.out.println("赋值之后:" + t.num); // 为引用型参数重新赋值 t.change(t); System.out.println("运算之后:" + t.num); System.out.println(); t = new ParamTest(); System.out.println("参数--引用类型"); System.out.println("原有的值:" + t.num); // 改变基本类型参数的值 t.add(t.num); System.out.println("赋引用后:" + t.num); // 改变引用类型参数所指向对象的属性值 t.add(t); System.out.println("改属性后:" + t.num); } } 这段代码的运行结果如下: 参数--基本类型 原有的值:0 赋值之后:0 运算之后:0 参数--引用类型 原有的值:0 赋引用后:0 改属性后:20 从上面这个直观的结果中我们很容易得出如下结论: 对于基本类型,在方法体内对方法参数进行重新赋值,并不会改变原有变量的值。 对于引用类型,在方法体内对方法参数进行重新赋予引用,并不会改变原有变量所持有的引用。 方法体内对参数进行运算,不影响原有变量的值。 方法体内对参数所指向对象的属性进行运算,将改变原有变量所指向对象的属性值。 上面总结出来的不过是我们所看到的表面现象。那么,为什么会出现这样的现象呢?这就要说到值传递和引用传递的概念了。这个问题向来是颇有争议的。 大家都知道,在JAVA 中变量有以下两种: 基本类型变量,包括char、byte、short、int、long、float、double、boolean。 引用类型变量,包括类、接口、数组(基本类型数组和对象数组)。 当基本类型的变量被当作参数传递给方法时,JAVA 虚拟机所做的工作是把这个值...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

java值传递引用传递

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部