首页 > 代码库 > java基础:Object的equals方法
java基础:Object的equals方法
一:看第一个例子
<script src="https://code.csdn.net/snippets/594937.js" type="text/javascript"></script>
输出结果:
false
false
cat1 == cat2 很简单,他们不是同一对象,有不通的存储地址。
但是cat1.equals(cat2)为什么是false呢。因为cat是对象,这里用的是父类的equals方法
而Object类equals方法的实现为:
<strong><span style="font-size:18px;"> public boolean equals(Object obj) { return (this == obj); }</span></strong>
所以,Obejct的equals方法本质上还是用==比较的。
二:尝试重写Obejct的equals方法
<script src="https://code.csdn.net/snippets/594938.js" type="text/javascript"></script>
输出结果:
true
三:String的equals方法
String s1 = "abc"; String s2 = "abc"; System.out.println(s1.equals(s2));
具体重写实现为:
public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String) anObject; int n = value.length; if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherString.value; int i = 0; while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }
java基础:Object的equals方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。