Java重写object类的equals方法
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方法相关推荐
- java 对象重写equals方法_Java如何重写object类的equals方法详解
1.Object类的equals()方法: 比较两个对象是否是同一个对象,equals() 方法比较两个对象,是判断两个对象引用指向的是同一个对象,即比较 2 个对象的内存地址是否相等.是则返回tru ...
- Java基础Object类的equals方法
关于Object类中的equals方法 1.equals方法的源代码 public boolean equals(Object obj) {return (this == obj);}以上这个方法是O ...
- 重写Object类的equals方法
package com.learn.demo01.Object;import java.util.ArrayList;public class Demo02Equals {public static ...
- 《Java 核心技术卷1 第10版》学习笔记------Object类的 equals 方法
Object 简述 Object 类是 Java 中所有类的始祖, 在 Java 中每个类都是由它扩展而来的. 在 Java 中, 只有基本类型 ( primitive types) 不是对象, 例如 ...
- Object类的equals方法
equals方法 很多面试题都会问equals方法和 == 运算符的区别,== 运算符用于比较基本类型的值是否相同,或者比较两个对象的引用是否相等,而equals用于比较两个对象是否相等,这样说可能比 ...
- JavaSE学习总结(八)常用类(上)Object类==与equals方法的区别浅克隆的特点Scanner类String类String两种创建对象方式的区别String类的各种功能
JavaSE学习总结(八)常用类(上)/Object类/==与equals方法的区别/浅克隆的特点/Scanner类/String类/String两种创建对象方式的区别/String类的各种功能 常用 ...
- Java基础Object类的finalize方法
1.在Object类中的源代码: protected void finalize() throws Throwable { } GC:负责调用finalize()方法. 2.finalize()方法只 ...
- java的Object类有哪些方法
1.getClass方法 获取运行时类型,返回值为Class对象 2.hashCode方法 返回该对象的哈希码值,是为了提高哈希表的性能(HashTable) 3.equals方法 判断两个对象是否相 ...
- 【宋红康学习日记11】Object类与equals方法
1 == (1)当对象是基本数据类型时,比较值: (2)当对象是引用型时,比较的是地址值!!1 2 equals():只处理引用型数据:Object类中的equals方法依然比较的是地址值! 但在St ...
最新文章
- ADO与ADO.NET
- 嵌入式计算机的特点和应用,以下描述中,()不是嵌入式操作系统的特点。A.面向应用,可以进行裁剪和移植B.用 - 信管网...
- Ubuntu下安装配置JDK1.7
- 从苹果店员到机器学习工程师,高中学历澳洲小哥的自学路
- 加快Linux上yum下载安装包的速度(以CentOS 7,安装gcc为例)
- 敏捷开发用户故事系列之九:用户故事早期估算
- 根据车辆型号自动生成车辆编号
- 基于标签传递的重叠社区发现算法(COPRA算法)
- GitLab之docker注册Runner
- js indexOf()用法
- 个人网站真能转成商业网站,你能么?
- 原型模型| 软件工程
- 淘宝新店已经不死不活没有生意怎么办
- 图解LVS的工作原理
- SAP中会计科目无法查看明细行项目分析处理
- 互联网大脑架构分析之腾讯:至少已布局三大AI实验室
- ARM64中的ASID地址空间标识符
- 做程序员你需要明白这九件事
- 电子合同网页预览盖章效果实现
- 腊月廿五链界观区块链资讯