对象的比较

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

这是为什么?

淡泊如风
浏览 1237回答 1
1回答

xczzxc002

String 对象的equals方法默认比较的是两个字符串的值是否相等;两个字符串的值相等,所以是true对象实例的equals方法默认比较的是两个对象的引用地址是否相等,因为这是两个对象实例,代表了不同引用地址,所以是false延伸:所有的类都有一个顶级父类Object,你的Compare类的equals方法是从Object类中继承下来的,你可以重写equals方法,来重新定义两个类判定相等条件,这样就不会默认的判断引用地址的值了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java