苏航航航 2022-10-23 03:10 采纳率: 100%
浏览 14
已结题

Equals重写的理解

请问关于contains方法底层调用的equals方法到底怎么理解,不重写就是跟==的做用一样,重写的代码不理解,还是说死记硬背就好了,真的不理解原理是什么,判断两个地址值是否一致,判断形参的值是否为null,判断两个值是否为同一类,然后强转为一类,在去拿调用这个方法的对象里面的内容与另外一个对象里面的内容去进行比较,不直接写成this.内容equals(other.内容)就好了嘛

  • 写回答

1条回答 默认 最新

  • 夜郎king 2022博客之星IT其它领域TOP 12 2022-10-23 08:04
    关注

    img


    以上图为例,虽然person1和person2中的成员变量值相同,但是这两个对象(引用)所指向的地址不一样,所以equals就判断为false。equas比较的内存地址,这个是关键。所以如果改变两者的相等逻辑,重写后就是,根据自定义的规则比较就行,比如,身份证号码相同就认为是同一个人。
    这种底层的东西需要理解掌握。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月1日
  • 已采纳回答 10月24日
  • 创建了问题 10月23日