文档章节

Java中equals方法解析

bharals
 bharals
发布于 2017/05/19 17:04
字数 345
阅读 14
收藏 0
public boolean equals(Object o){
    if(o == null){
        return false;
    }
    if(o == this){
        return true;
    }
    if(o instanceof Point){
    /*
     * 子类转换为父类不需要做什么操作
     * 
     * 但是父类转换为子类需要强制类型转换,
     * 但是要注意,这可能出现类造型异常
     */
    Point p = (Point)o;
    //判断特征
    return this.x==p.x&&this.y==p.y;
    }
return false;
}



这里用到3if语句的作用:

equals方法比较的是两个对象的内容;

1::因此第一个if判断次对象是否为Null,如果为null则没有必要再继续做内容比较;

2:第二个if判断这个对象是否和当前使用中的对象是同一个对象,如果是同一个对象,那么这两个引用间内容的 比较毫无疑问是一样的;

3:第三个if经过前面2if的判断后,可以肯定这个对象不为Null,并且并非为同一个对象,因此此次比较才有意义,在这两个对象做比较的时候,必须是同一类型的对象才能够做比较,不同的种类比较没有意义;因此在此处需要对传入进来的对象进行强制类型转换,把这个对象转换成功后,然后才对这两个对象的属性进行比较,看是是否一样。


© 著作权归作者所有

共有 人打赏支持
bharals
粉丝 0
博文 26
码字总数 46307
作品 0
最最最常见的Java面试题总结-第一周

这里会分享一些出现频率极其极其高的面试题,初定周更一篇,什么时候更完什么时候停止。 Github地址:https://github.com/Snailclimb/Java-Guide/blob/master/面试必备/最最最常见的Java面试...

Amsour丶
08/08
0
0
scala中的==、equals、eq

scala中equals方法和==是检查值是否相等,而eq方法检查的是引用是否相等。 Scala 的==与Java的有何差别 Java 里的既可以比较基本类型也可以比较引用类型。对于基本类型,Java 的==比较 值比较...

张欢19933
04/27
0
0
Java拾遗:001 - 重写 equals 和 hashCode 方法

重写equals方法 在Java中Object类是一个具体类,但它设计的主要目的是为了扩展,所以它的所有非final方法,都被设计成可覆盖(override)的。但任何一个子类在覆盖这些方法时都应遵守一些通用...

一别丶经年
08/02
0
0
Java编程基础知识点和技术点归纳

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互...

Java小辰
05/23
0
0
【翻译】Java中String, StringBuffer, StringBuilder的区别

String 是 Java 中最重要的类之一,并且任何刚开始做Java编程的人,都会用String定义一些内容,然后通过著名的System.out.println()语句来打印出来。 然而,很多Java新手都不会意识到 String...

YuanyuanL
2014/09/03
0
4

没有更多内容

加载失败,请刷新页面

加载更多

下一页

沙箱程序之虚拟机篇

由上而下的描述。 libvirt 最顶层是管理虚拟机的入口,linux开源套件 libvirt(官网:www.libvirt.org): Introduction The libvirt project: is a toolkit to manage virtualization platfor......

simpower
30分钟前
0
0
1.05-一台电脑配置多个SSH KEY

https://www.cnblogs.com/popfisher/p/5731232.html

静以修身2025
35分钟前
0
0
美团在O2O场景下的广告营销

美团作为中国最大的在线本地生活服务平台,覆盖了餐饮、酒店、旅行、休闲娱乐、外卖配送等方方面面生活场景,连接了数亿用户和数百万商户。如何帮助本地商户开展在线营销,使得他们能快速有效...

美团技术团队
36分钟前
0
0
/etc/rc.d/rc.local设置开机启动

vi /etc/rc.d/rc.local /usr/local/apache/bin/apachectl -k start

健康的程序员
43分钟前
0
0
IntelliJ IDEA 插件 阿里巴巴Java开发手册

以前看到过个:Java开发手册(阿里巴巴-公开版),这是个pdf文档,里面描述了一些Java开发的规约,里面确实有很多好用的规约,要是在学校就有机会看看的话,那么,在毕业之后,实际工作中就会...

码代码的小司机
47分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部