**

如我们定义一个规则:如果这两个对象的内容一致,但是这两个对象可能不是同一个引用,也认为这两个对象是相等的,那么就需要重写equals。

**

java是一门面向对象语言,遵循一切皆对象的思想,在默认的比较方法equals中,比较的也是两个对象的引用,而不是对象里的内容。
equals方法来自祖类Object,默认比的是引用地址

如果不重写equals效果如下


这两个对象内容一致,但默认的equals比的是地址,则达不到我们我预期结果

重写equals比较对象内容,若内容一致,则认为相等,使用idea工具自动生成equals

    public boolean equals(Object o) {// 若是同一个地址,则一定相等,提高效率if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;User user = (User) o;// 若不是同一地址,内容一致,也认为相等return userid == user.userid && Objects.equals(username, user.username) && Objects.equals(pwd, user.pwd);}

效果

java对象为什么要重写equals方法相关推荐

  1. Java基础321 - 如何重写equals方法

    目录 如何重写equals方法 Pig实体类 测试方法 如何重写equals方法 应用实例: 判断两个Pig对象的内容是否相等,如果两个Pig对象的各个属性都一样,则返回true,反之false. 1 ...

  2. java——API—— Object类——重写equals方法

    重写Object类的equals方法 如果希望进行对象的内容比较,即所有或指定的部分成员变量相同就判定两个对象相同,则可以覆盖重写equals方法. Object类的equals方法,默认比较的是两个 ...

  3. Java拾遗:001 - 重写 equals 和 hashCode 方法

    2019独角兽企业重金招聘Python工程师标准>>> 重写equals方法 在Java中Object类是一个具体类,但它设计的主要目的是为了扩展,所以它的所有非final方法,都被 ...

  4. Java重写equals方法时为什么要重写hashCode方法

    在我们平时编写Java代码时,重写equals方法时一定要重写hashCode方法,这是为什么呢? 在讨论这个问题前,我们先看下Object类中hashCode方法和equals方法. hashCod ...

  5. 【Java基础】重写equals方法详讲

    一.重写equals方法 [Java比较学习]重写equals方法的安全写法 1.重写equals方法的两种方式 这里提供两个比较常见的equals重写方法: ● 用instanceof实现重写equ ...

  6. Java 细品 重写equals方法 和 hashcode 方法

    前言 在我们需要比较对象是否相等时,我们往往需要采取重写equals方法和hashcode方法. 该篇,就是从比较对象的场景结合通过代码实例以及部分源码解读,去跟大家品一品这个重写equals方法和h ...

  7. java 对象重写equals方法_Java如何重写object类的equals方法详解

    1.Object类的equals()方法: 比较两个对象是否是同一个对象,equals() 方法比较两个对象,是判断两个对象引用指向的是同一个对象,即比较 2 个对象的内存地址是否相等.是则返回tru ...

  8. JAVA中重写equals()方法的同时要重写hashcode()方法

    object对象中的 public boolean equals(Object obj),对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true:注意:当此方法 ...

  9. 重写Java Object类中的equals()方法

    Java中的Object类中的equals方法 Object类的equals方法 重写Object类的equals()方法 Person类默认继承了Object类,所以可以使用Object类的equa ...

最新文章

  1. Visual Studio 2005 Team System下载地址
  2. 一文图解机器学习的基本算法!
  3. EXCEL 找出重复的记录 COUNTIF
  4. 从红旗5.0提及——看Linux的内存办理
  5. EasyUI combobox
  6. 小白系列之51单片机的入门速成法
  7. 405 not allowed什么意思_二驴质问散打:为什么不救天道!面临一个亿赔款?次惑小仙女宣布与可乐分手!...
  8. 多角度分析平台即服务?PaaS的类型和用例
  9. I/O(输入/输出)---序列化与反序列化
  10. GridView类容器中的DropDownList联动
  11. 面试题9:斐波那契数列
  12. 北信源管理网页卸载密码_怎么卸载找不到程序的流氓软件?
  13. LayUI清空下拉框的值
  14. swift项目第七天:构建访客界面以及监听按钮点击
  15. springboot starter的一个问题
  16. 在VS中查看文件是谁签出的
  17. 3d ListView翻译
  18. 【学习笔记】《分布式光纤振动传感系统技术的研究与实现--华科--邹**--光学工程》重点笔记
  19. php爬虫入门之phpspider框架
  20. 模拟AP与可以访问互联网的网络连接,虚拟出一个“无线路由器”

热门文章

  1. Windows7+CentOS双系统同一硬盘
  2. Python数据分析到底可以用来做什么?
  3. 一篇会改变身处职场的你思维的一篇文章
  4. [HTML5点滴]客户端存储那些事
  5. 卡布奇诺搭建教程_移动Web应用程序框架匹配,第2部分,探索卡布奇诺咖啡以进行移动Web应用程序开发
  6. 数学之美读书感悟02
  7. Mac Androidstudio点击打开跳一下就消失
  8. 第29课:AD中class,设计参数,规则的设置
  9. python包和库的区别_python中模块、包、库的区别和使用
  10. python里row是什么意思_row python