java基础:Object的equals方法
2015-02-01 16:20
435 查看
一:看第一个例子
输出结果:
false
false
cat1 == cat2 很简单,他们不是同一对象,有不通的存储地址。
但是cat1.equals(cat2)为什么是false呢。因为cat是对象,这里用的是父类的equals方法
而Object类equals方法的实现为:
所以,Obejct的equals方法本质上还是用==比较的。
二:尝试重写Obejct的equals方法
输出结果:
true
三:String的equals方法
返回true,因为String就重写了Object的equals方法
具体重写实现为:
输出结果:
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方法
输出结果:
true
三:String的equals方法
String s1 = "abc"; String s2 = "abc"; System.out.println(s1.equals(s2));
返回true,因为String就重写了Object的equals方法
具体重写实现为:
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类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解(转载)
- JAVA基础知识回顾(基本数据类型,switch参数,equals与==的区别,Object有哪些公用方法)-1
- Java 基础一些代码练习笔记(object-equals 方法)
- 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解
- java基础:Object的equals方法
- Java学习笔记之Object类以及equals()方法
- java.lang.Object的equals()和hashCode()方法小结
- Java_语法基础_equals方法与“==”的区别
- 【Java基础】JAVA中重写equals()方法为什么要重写hashcode()方法?
- 【Java基础之重写equals、hashCode和compareTo方法】什么时候需要重写重写equals方法?为什么重写equals方法,一定要重写HashCode方法?
- Java基础面试题:==和equals方法有何区别?
- 多态Object类equals方法学习笔记ObjectDemo.java
- 重写Java Object对象的hashCode和equals方法实现集合元素按内容判重
- java基础入门-hashcode与equals方法
- Java基础之"=="和 和 equals 方法的区别
- Java基础之Object 常用方法
- java 的Object的equals方法
- Java基础复习:Object类中的toSting()和equals()方法
- java Object 的equals方法的复写
- java基础学习总结——equals方法