方法的传参

这段代码的输出值是goodandgbc
很明显,传入的String没有被改变,而传入的char数组的值却被改变了。首先对于传参来说,区别在在于数据类型,
一、对于基本数据类型来说
是不能修改基本数据类型的值的,因为在方法中传递的只是基础数据类型的值的拷贝而已,简而言之,此题中方法内部的str与类中定义的str没有半毛钱的关系。当然,这个只是基本数据类型,传的啥出来还是啥。
二、对于对象引用类型的传参
对于此题来说,应该是 char[] kk = null;    change(kk);
kk被初始化为ch对象的一个拷贝;这里是一个对象的引用
而这个赋值方法,应用于这个对象的引用,也就是说kk、ch均是对象的引用,而方法作用于对象本身,所以,当方法执行完毕后,kk没有用了,而ch继续引用经过处理的对象,这个引用是没有变的。
三、对于值交换来说
真正交换的是其拷贝文件的调用,而本身对象的引用也没有进行交换。
记住:
1、方法的传参,均要进行拷贝,但是对于基本数据类型来说。
2、而对象的引用,拷贝的同样是对象的引用,但是在方法中调用方法作用于所引用的对象上,改变了对象。
3、值交换,交换的是引用,而不是方法外的值本身。
4、三大引用数据类型:类、接口、数组
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值