A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 盛亚昆 中级黑马   /  2012-3-19 14:12  /  1410 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public int compareTo(Object obj);当一个对象被当做参数传递到一个方法后,此方法可改变这个对象的属性,并返回变化后的结果,那么这里到底是值传递啊还是引用传递啊

6 个回复

倒序浏览
传的是对象的引用地址,所以改的值是原对象的值,引用只是一个名字吗,实际操作的值都还是一个对象。不知道你明白没有。
回复 使用道具 举报
yocean 发表于 2012-3-19 14:34
Java语言采用的都是值传递。Java除了基本类型其他都是引用类型,对象参数传给方法是方法得到的是对象 ...

Java语言采用的都是值传递。????
回复 使用道具 举报
因为Java里方法参数的传递实际上只有值传递(不管基本类型或引用类型),对基本类型来说是把其值传递了一份过去,而对引用类型来说实际是把引用地址的值复制一份传递了过去。
另外,只有用new方法创建的对象的实际成员数据是存放在堆里面的,而其他方法内部定义的变量都存放在栈中,一旦出了方法的范围就失效,会被内存回收。
回复 使用道具 举报
person p = new person();
public int compareTo(Object obj);
compareTo(p)
p里面存的是对象的地址值;p-->obj
此处传递的是对象person的地址值,p和obj都指向同一个对象;
函数体内操作的是obj,obj指向的对象属性变化,等同于p指向的对象属性变化;
所以传递的应该是对象的引用;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马