Java中的Object类中的equals方法

  • Object类的equals方法
  • 重写Object类的equals()方法

Person类默认继承了Object类,所以可以使用Object类的equals方法.
boolean equals(Object obj)指示其他某个对象是否与此对象“相等”。

Object类的equals方法

Object类equals方法的源码:

 public boolean equals(Object obj) {return (this == obj);}

参数:
Object obj:可以传递任意的对象
==比较运算符,返回的是一个布尔值 true/false
基本数据类型:比较的是值
引用数据类型:比较的是两个对象的地址值

未重写equals()方法:

 Person p1=new Person("迪丽热巴",18);Person p2=new Person("迪丽热巴",18);boolean b=p1.equals(p2);System.out.println(b);//比较的是地址,输出结果为:false

重写Object类的equals()方法

Object类的equals方法,默认比较的是两个对象的地址值,没有意义,所以我们要重写equals方法,比较两个对象的属性(name,age)
问题:
隐含着一个多态
多态的弊端:无法使用子类特有的内容(属性和方法)
Object obj = p2 = new Person(“古力娜扎”,19);
解决:可以使用向下转型(强转)把obj类型转换为Person

重写equals()的源码

    @Overridepublic boolean equals(Object obj){//使用向下转型,把obj转换为Person类型Person p=(Person) obj;//比较两个对象的属性,一个对象是this(p1),一个对象是p(obj->p2)boolean b = this.name.equals(p.name) && this.age == p.age;return b;}

重写后比较的是名字和年龄相不相同,都相同则相等,返回true
重写了equals()方法:

 Person p1=new Person("迪丽热巴",18);Person p2=new Person("迪丽热巴",18);boolean b=p1.equals(p2);System.out.println(b);//比较的是姓名和年龄,输出结果为:true

重写Java Object类中的equals()方法相关推荐

  1. JAVA进阶教学之(Object类中的equals方法)

    public boolean equals(Object obj){return (this == obj); } 原始equals方法是判断两个对象的内存地址是否相等的(内存地址相等,保存的值也相等 ...

  2. String类中的equals方法与Object类中的equals方法的不同点

    1.首先我们看看Object类中的equals方法 public boolean equals(Object obj) {return (this == obj);} 我们可以看出Object类中判断 ...

  3. JAVA入门级教学之(Object类中的equals方法)

    package com.lbj.javase18; /**  * 关于Object中的equals方法:  *   * Object中的equals方法(核心):  *  public boolean ...

  4. java Object类中的各个方法及其作用

    原文链接 一.简介Object类 Object类是所有类的父类,即每个类都直接或简介继承自该类.所以一个Object类型的变量可以引用任何对象,不论是类实例还是数组. 在不明确给出父类的情况下,Jav ...

  5. Java Object类中的finalize()方法

    finalize()方法只会被执行一次,用于在GC垃圾回收前来申辩对象到底要不要被回收,但再次GC时是不会调用此方法的,只会执行一次finalize

  6. object类中的equals与自定义equals方法详解

    object类中的equals与自定义equal方法详解 1.this怎么理解?this == obj表示什么? this就是当前你new出来的对象,这里指谁调用equal方法this指的就是谁,ob ...

  7. Object类toString()和equals()方法剖析

    Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.所有类在创建对象的时候,最终找的父类就是Object. toString()方法 由于toString方法返回的 ...

  8. Object类中常见的方法

    一.Object类中的toString()方法 1. object 默认方法 toString方法,toString() 输出一个对象的地址字符串(哈希code码)! 2.可以通过重写toString ...

  9. Java Object类中toString方法的重写

    Object类中的tostring方法的: 当我们输出一个对象时,实际是输出的是这个类中的tostring方法,是一个地址值,而不是类中的属性. 一:子类没有重写Object类中的toStrinng方 ...

最新文章

  1. 19.04.02笔记
  2. 关于“插入图片”等功能无法使用的问题
  3. 量子位「MEET 2021智能未来大会」启动,邀智能科技企业共探明日行业新格局
  4. Linux Shell 命令--rename
  5. 提取页面共性用抽象类来写页面模板
  6. 各省市数据中心机房工程新建项目汇总(2021年)
  7. Web框架 — Flask
  8. Redis系列教程(六):Redis缓存和MySQL数据一致性方案详解
  9. linux 查杀php木马,linux上php木马、后门查杀总结
  10. linux环境下内存溢出分析MAT
  11. 6个好用的Web开发工具
  12. 思维的碰撞|小博变换偶遇深度学习
  13. python3.x编程模板总结
  14. 搜狗输入法安装上问题
  15. 二层交换机和三层交换机的工作原理
  16. html display none取消,将displaynone取消
  17. Java 面向对象 习题2(基础篇)
  18. GBA火焰纹章改版-智慧的结晶2.0更新(发布)
  19. 信息系统项目管理师必背核心考点(四十五)招标投标法
  20. 联想拯救者R720双系统如何进bios

热门文章

  1. 矩阵分解法做推荐系统
  2. Python距离计算
  3. 如何在DataFrame索引某一行
  4. linux 可执行文件_linux中ELF二进制程序解析
  5. BERT论文阅读(二): CG-BERT:Conditional Text Generation with BERT for Generalized Few-shot Intent Detection
  6. NTU 课程 CE7454:信息论概述
  7. mysql 临时索引_MySQL select in 语句未使用索引,产生磁盘临时表,导致 crash
  8. 5类6类7类网线对比_未来值得投资的6类苗木,5年内市场前景应该都不错!
  9. Matplotlib实例教程(一):柱状图(条形统计图)plt.bar()
  10. Anaconda中快速安装Tensorflow与Keras并在pycharm中完成相应配置(win10cpu版)