为了账号安全,请及时绑定邮箱和手机立即绑定

对象的比较

对象的比较

淡泊如风 2016-05-30 22:57:54
String s1=new String("abc");和String s2=new String("abc");   它们的s1.equals(s2)是true   而自定义class compare{int a=3;}compare c1=new compare();和compare c2=new compare()   它们的c1.equals(c2)是flase这是为什么?
查看完整描述

1 回答

已采纳
?
xczzxc002

TA贡献24条经验 获得超19个赞

String 对象的equals方法默认比较的是两个字符串的值是否相等;两个字符串的值相等,所以是true

对象实例的equals方法默认比较的是两个对象的引用地址是否相等,因为这是两个对象实例,代表了不同引用地址,所以是false

延伸:所有的类都有一个顶级父类Object,你的Compare类的equals方法是从Object类中继承下来的,你可以重写equals方法,来重新定义两个类判定相等条件,这样就不会默认的判断引用地址的值了

查看完整回答
反对 回复 2016-05-30
  • 1 回答
  • 0 关注
  • 1236 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信