黑马程序员技术交流社区

标题: 求解惑 [打印本页]

作者: 呆呆呆    时间: 2013-12-9 21:45
标题: 求解惑
本帖最后由 呆呆呆 于 2013-12-10 11:13 编辑

想到一个问题:当一个对象被当做参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,
这里到底是值传递还是引用传递?帮忙啊

作者: kongling    时间: 2013-12-9 22:05
java 基本类型是值传递, 类的对象为引用传递
作者: 翼展哈哈    时间: 2013-12-9 22:30
我认为是引用传递。值传递是把某一数据传递给某函数,由该函数来处理数据,并不对原有内存的数据进行操作;而这是把对象引用传递给某函数,由该函数来对堆内存中该对象实体的属性数据进行操作,对原有内存数据进行了操作。
希望可以帮到楼主。
作者: 高亮亮    时间: 2013-12-9 23:09
本帖最后由 高亮亮 于 2013-12-9 23:13 编辑

这应该是引用传递。因为对象是引用数据类型,传递的是堆内存中的对象地址,虽然在你说的方法被改变了属性,地址中的变量改变了,也就是值改变了,但跟值传递没有关系,这改变是那个方法的操作。
所以这不是值传递。值传递应该是基本数据类型,比如一个int类型的变量s,你给他赋了值。然后用s这个变量把它的实际参数也就是值传给某个方法进行操作,这就是值传递吧。

作者: 雪飘舞    时间: 2013-12-9 23:21
我觉得传递的应该是引用,因为类的对象是引用数据类型。
而传递值的话应该是基本数据类型了




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