关于改写equals()方法的问题

来源:6-1 学生选课---判断 List 中课程是否存在

奶尤糯米团子

2020-03-19 16:53

http://img3.mukewang.com/5e73329400011ff110760978.jpg

第一个问题,55行为什么一定要return false,不可以比较两个空的对象呢?

第二个问题,62行,为什么还要分类this对象的name是不是空呢?直接像69行比较不就行了嘛?感觉有点多此一举呢?

写回答 关注

4回答

  • 一个大憨憨
    2020-04-04 22:45:08
    已采纳

    第一个问题:空对象不能调用equals()方法;会抛出空指针异常;           第二个问题:值为null的引用类型变量不能调用非静态方法,会抛出空指针异常;           第三个问题:return后直接会结束函数,同时返回一个返回值;你前面不管怎么执行,最后都会得到一个return语句,所以最后的return语句就多余了;        第四个问题:是执行重写之前的方法。


    qq_慕丝4... 回复一个大憨憨

    第一次不是判断obj==null吗?为什么下面还会要判断两个都为null,obj为null不是false

    2021-09-04 21:33:03

    共 5 条回复 >

  • Alex_first
    2020-07-15 16:50:34

    第六十九行调用的是name的equals方法

  • 奶尤糯米团子
    2020-03-24 23:29:30

    还有两个问题,系统是怎么辨别是否用加上最后一行(75)的return true的呢?这里为什么就报错了;

    当重写的equals()方法里调用了equals()方法(如第69行),是默认执行重写前的方法吗?

  • qq_精慕门3428651
    2020-03-23 20:25:19

    这两个都是一个类型的问题,可以了解一下“空指针异常”

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题