1.Object类的equals()方法:
比较两个对象是否是同一个对象,equals() 方法比较两个对象,是判断两个对象引用指向的是同一个对象,即比较 2 个对象的内存地址是否相等。是则返回true
Object类是所有类的父类,它的equals方法自然会被所有类继承,有一个子 类String对equals方法进行了覆盖(重写),使其具有了新功能


2.Object类的equals()方法与==没区别
Java.lang.String重写了equals()方法,把equals()方法的判断变为了判断其值
当有特殊需求,如认为属性相同即为同一对象时,需要重写equals()

总结:
1.基本数据类型数据值只能用
2.对于引用数据类型,和Object的equals方法是一样的。(查看源码)
由于String类对父类Object的equals方法的重写,导致equals与= =唯一的区别在于比较对象

例题 :
重写比较规则,判断两名学员(Student)是否为同一对象
Student相关属性
Id(学号)、name(姓名)、age(年龄)
如果两名学员的学号以及姓名相同,则为同一对象


1 对 Student类进行封装 然后在里面重写equals方法
方法代码:

public class  Student {private  int id;private  String name;private  int age;@Override  //重写equals方法public boolean equals(Object obj) {if(obj instanceof Student){Student s1=(Student)obj;return this.id==s1.id&&this.name==s1.name&&this.age==s1.age;}else {System.out.println("错误");return false;}}public Student(int id, String name, int age) {this.id = id;this.name = name;this.age = age;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}

测试类进行测试

 public static void main(String[] args) {Student s1 = new Student(1,"张三",18);Student s2 = new Student(1,"张三",18);Student s3 = new Student(1,"张三",18);Student s4 = new Student(1,"张三",20);System.out.println(s1.equals(s2));System.out.println(s3.equals(s4));}

以上程序执行结果

Java重写object类的equals方法相关推荐

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

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

  2. Java基础Object类的equals方法

    关于Object类中的equals方法 1.equals方法的源代码 public boolean equals(Object obj) {return (this == obj);}以上这个方法是O ...

  3. 重写Object类的equals方法

    package com.learn.demo01.Object;import java.util.ArrayList;public class Demo02Equals {public static ...

  4. 《Java 核心技术卷1 第10版》学习笔记------Object类的 equals 方法

    Object 简述 Object 类是 Java 中所有类的始祖, 在 Java 中每个类都是由它扩展而来的. 在 Java 中, 只有基本类型 ( primitive types) 不是对象, 例如 ...

  5. Object类的equals方法

    equals方法 很多面试题都会问equals方法和 == 运算符的区别,== 运算符用于比较基本类型的值是否相同,或者比较两个对象的引用是否相等,而equals用于比较两个对象是否相等,这样说可能比 ...

  6. JavaSE学习总结(八)常用类(上)Object类==与equals方法的区别浅克隆的特点Scanner类String类String两种创建对象方式的区别String类的各种功能

    JavaSE学习总结(八)常用类(上)/Object类/==与equals方法的区别/浅克隆的特点/Scanner类/String类/String两种创建对象方式的区别/String类的各种功能 常用 ...

  7. Java基础Object类的finalize方法

    1.在Object类中的源代码: protected void finalize() throws Throwable { } GC:负责调用finalize()方法. 2.finalize()方法只 ...

  8. java的Object类有哪些方法

    1.getClass方法 获取运行时类型,返回值为Class对象 2.hashCode方法 返回该对象的哈希码值,是为了提高哈希表的性能(HashTable) 3.equals方法 判断两个对象是否相 ...

  9. 【宋红康学习日记11】Object类与equals方法

    1 == (1)当对象是基本数据类型时,比较值: (2)当对象是引用型时,比较的是地址值!!1 2 equals():只处理引用型数据:Object类中的equals方法依然比较的是地址值! 但在St ...

最新文章

  1. ADO与ADO.NET
  2. 嵌入式计算机的特点和应用,以下描述中,()不是嵌入式操作系统的特点。A.面向应用,可以进行裁剪和移植B.用 - 信管网...
  3. Ubuntu下安装配置JDK1.7
  4. 从苹果店员到机器学习工程师,高中学历澳洲小哥的自学路
  5. 加快Linux上yum下载安装包的速度(以CentOS 7,安装gcc为例)
  6. 敏捷开发用户故事系列之九:用户故事早期估算
  7. 根据车辆型号自动生成车辆编号
  8. 基于标签传递的重叠社区发现算法(COPRA算法)
  9. GitLab之docker注册Runner
  10. js indexOf()用法
  11. 个人网站真能转成商业网站,你能么?
  12. 原型模型| 软件工程
  13. 淘宝新店已经不死不活没有生意怎么办
  14. 图解LVS的工作原理
  15. SAP中会计科目无法查看明细行项目分析处理
  16. 互联网大脑架构分析之腾讯:至少已布局三大AI实验室
  17. ARM64中的ASID地址空间标识符
  18. 做程序员你需要明白这九件事
  19. 电子合同网页预览盖章效果实现
  20. 腊月廿五链界观区块链资讯

热门文章

  1. 学习笔记-PumpkinFestival-WalkThrough
  2. java文件备份_定时自动备份文件(java)
  3. ThunderBird雷鸟 只能收件无法寄件解决
  4. 远程控制软件使用体验
  5. C语言关于函数学习的总结
  6. Java项目:SSM汽车保险车险理赔管理系统
  7. 计算机原理汇编程序实验报告的总结,计算机组成原理及汇编实验报告
  8. 辅助使用说明和问题解答
  9. Pytorch的坑之 训练结果不太稳定,无法复现训练结果?
  10. android_9ce1什么手机,HTC E1评测:客制化路线下的Android手机