码迷,mamicode.com
首页 > 编程语言 > 详细

java基础:Object的equals方法

时间:2015-02-01 17:52:09      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:equals      object   string   

一:看第一个例子


输出结果:

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的equals方法

标签:equals      object   string   

原文地址:http://blog.csdn.net/u013628152/article/details/43372279

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!