黑马程序员技术交流社区

标题: 当一个对象作为参数传递给一个方法时,参数的问题 [打印本页]

作者: kingowe    时间: 2015-5-17 20:06
标题: 当一个对象作为参数传递给一个方法时,参数的问题
当一个对象作为参数传递给一个方法后,此方法可改变这个对象的属性,并可以返回变化后的结果,那么这里到底是值的传递还是引用传递?

作者: xbutterflyx    时间: 2015-5-17 20:24
两种参数传递情况:
1.一种是基本数据类型的传递
2.一种是引用数据类型的传递
1的情况是你传递进去的是数值,并不是变量本身,被方法中的形参接收了,因此无论形参怎么变,对你传递的变量不会有任何影响.
2的情况是,你把引用型变量X的地址传递到了方法中的形参Y,而Y与X都是指向同一个地址.因此,无论你对X操作还是Y操作,实际上操作的是同一个对象.因此会造成地址对应对象的实际改变.

作者: pvbj0314    时间: 2015-5-17 20:26
比如方法static Object1 test(Object obj);如果你使用Object1.test(obj1);,其中obj1是其它类型的对象,这里执行Object obj = obj1; 即把obj1的地址赋值给obj。因为obj1的值是Object对象的地址,所以将其内容即Object对象的地址赋值给obj。本质上是值传递。实际在Java中都是值传递,弄清楚传递的是什么值,就明白了。
作者: 夕阳的刻痕    时间: 2015-5-17 21:53
学习了。。
作者: zzlin    时间: 2015-5-17 21:57
1、java中没有真正意义上的引用传递
2、基本类型参数的传递的是变量值,引用类型传递的是变量内存地址
3、对引用数据类型变量的操作实际就是根据内存地址值对对象的操作




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2