zoukankan      html  css  js  c++  java
  • 120 01 Android 零基础入门 02 Java面向对象 05 Java继承(下)02 Object类 02 Object类介绍(中)

    120 01 Android 零基础入门 02 Java面向对象 05 Java继承(下)02 Object类 02 Object类介绍(中)

    **本文知识点: Object类介绍(中) **

    说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进行了截图记录,没有对截图步骤进行详细的文字说明(后面博主时间充裕了,会对目前的博客编辑修改,补充上详细的文字说明);有些步骤和相关知识点缺乏文字描述,可能会难以理解。读者如有不明之处,欢迎博客私信或者微信(本人微信在博客下方的“关于博主”处)与本人交流,共同进步

    Object类介绍(中)

    如果只比较测试类中的2个对象的值是否相同?怎么办?

    mark

    那就要在Animal父类中重写Java根类Object的equals方法。

    在Animal父类中重写Java根类Object的equals方法

    mark

    测试类中测试重写的equals方法的运行结果

    重写equals方法,改变比较规则
    mark

    因为Animal父类中重写Java根类Object的equals方法,重写后的equals方法如上,用以比较的是动物对象的名称和月份是否相同。
    因为one和two的鱼粉名称完全一致,所以比较的结果为true。(注意:下图中的代码有误了,没有及时更改,此时equals比较的不是引用了,而是对象的值
    mark

    在Animal父类中将已经重写Java根类Object的equals方法进行重载

    mark

    注意:重写equals方法是,判断传入的对象是否为空的步骤非常重要。避免空指针异常

    注意:重写equals方法是,判断传入的对象是否为空的步骤非常重要。避免空指针异常。

    mark

    假如去掉判断传入对象是否为空的if语句,看看会出现什么问题?
    在测试类中模拟一下假定传入参数为空的情况,会出现什么样的测试结果。
    **注意,因为我们的 Animal two = null; ** 是写在main方法中的,我们只能把two对象直接赋值为null;但如果是进行类之间的方法传参调用的情况下,那么,在参数不赋值的前提下,对象的值默认就是一个null。这点需要记清楚,实际工作中写代码时,需要格外注意这一点。以免引起异常和bug。

    mark
    测试代码,出现异常
    mark
    产生的异常是空指针异常,产生异常的位置,在two引用所指向的对象被equals方法调用的TestThree类的第16行。
    mark

    在Animal类的73行,空的引用调用getName方法时,产生了错误——空指针异常。
    mark

  • 相关阅读:
    python 线程队列、线程池、全局解释器锁GIL
    java Cookie 获取历史记录列表(三)
    Java中如何读写cookie (二)
    java读取和写入浏览器Cookies
    zookeeper的安装和部署
    Spring Boot 多模块项目创建与配置 (一)
    十款效果惊艳的Html案例(一)
    phython
    阿里高并发所用到的技术
    Java9新特性
  • 原文地址:https://www.cnblogs.com/xlfcjx/p/13791610.html
Copyright © 2011-2022 走看看