黑马程序员技术交流社区

标题: 对象当做叁数传递的疑问 [打印本页]

作者: 盛亚昆    时间: 2012-3-19 14:12
标题: 对象当做叁数传递的疑问
public int compareTo(Object obj);当一个对象被当做参数传递到一个方法后,此方法可改变这个对象的属性,并返回变化后的结果,那么这里到底是值传递啊还是引用传递啊
作者: 马云    时间: 2012-3-19 14:16
传的是对象的引用地址,所以改的值是原对象的值,引用只是一个名字吗,实际操作的值都还是一个对象。不知道你明白没有。
作者: 泮和顺    时间: 2012-3-19 14:43
yocean 发表于 2012-3-19 14:34
Java语言采用的都是值传递。Java除了基本类型其他都是引用类型,对象参数传给方法是方法得到的是对象 ...

Java语言采用的都是值传递。????
作者: 魏群    时间: 2012-3-19 14:54
因为Java里方法参数的传递实际上只有值传递(不管基本类型或引用类型),对基本类型来说是把其值传递了一份过去,而对引用类型来说实际是把引用地址的值复制一份传递了过去。
另外,只有用new方法创建的对象的实际成员数据是存放在堆里面的,而其他方法内部定义的变量都存放在栈中,一旦出了方法的范围就失效,会被内存回收。

作者: 周建    时间: 2012-3-19 15:46
person p = new person();
public int compareTo(Object obj);
compareTo(p)
p里面存的是对象的地址值;p-->obj
此处传递的是对象person的地址值,p和obj都指向同一个对象;
函数体内操作的是obj,obj指向的对象属性变化,等同于p指向的对象属性变化;
所以传递的应该是对象的引用;




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