黑马程序员技术交流社区

标题: “==”和equals的区别 [打印本页]

作者: 段郎    时间: 2014-4-20 12:12
标题: “==”和equals的区别
看了一些资料,会所“==”是比较值的,而equals是比较地址位置的,String 比较值和地址这比较好理解,但是对象比较时没有值啊,求高手解答一下,谢谢。

作者: 雪碧拌米饭    时间: 2014-4-20 12:28
对象中的内容都叫做对象的值啊!比如对象的属性,方法都是对象值得一部分
作者: 段郎    时间: 2014-4-20 12:36
雪碧拌米饭 发表于 2014-4-20 12:28
对象中的内容都叫做对象的值啊!比如对象的属性,方法都是对象值得一部分 ...

哦,原来这样,谢谢。
作者: 曹冬明    时间: 2014-4-20 12:37
"=="在比较基本数据类型的时候比较的是值,在比较引用型变量的时候比较的是地址值。equals方法时看两个对象的值是否相等,默认的也是比较对象的地址值,但是可以重写equals方法,来定义比较条件
作者: 雪碧拌米饭    时间: 2014-4-20 12:38
段郎 发表于 2014-4-20 12:36
哦,原来这样,谢谢。

不客气!努力!加油!
作者: 段郎    时间: 2014-4-20 12:45
曹冬明 发表于 2014-4-20 12:37
"=="在比较基本数据类型的时候比较的是值,在比较引用型变量的时候比较的是地址值。equals方法时看两个对象 ...

明白了,谢谢。
作者: 彭飞    时间: 2014-4-20 14:37
本帖最后由 彭飞 于 2014-4-20 14:40 编辑

我觉得除了一楼的回答,还可以这么理解

类是抽象的对不,而对象是实实在在的对不,
比如电饭煲是一个类把,
把两个一样的电饭煲比较,
      这个时候他们的属性,和功能都一模一样

再把两个不一样的电饭煲比较。
     可能封装的具体属性和,功能就有所区别,比如一个可以熬粥,一个只能做饭。

其实他们都是有值的,只不过封装起来了。
具体封装了什么我们不知道,但是封装起来的东西它会提供一个地址。
比较的时候就是指向了这个地址。


作者: 微笑=.一瞬间    时间: 2014-4-20 14:37
对象比较的是地址




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