java中任何一个类都是Object类的直接或间接子类,如果类没有超类,则它默认继承自Object类,在Object类中,实现了很多有用的方法,equals()方法默认操作检测两个对象是否具有相同的引用,这虽然很合理,但是并没有实用价值,通常需要重写该方法来比较类的域是否相等,如果参与比较的所有域都相等,则对象也相等,否则不等,对于基本类型恶意直接使用"=="进行判断,对于引用类型则需要重写equals()方法。该方法的声明如下:

public boolean equals(Object obj) {
}

本实例将创建三只宠物猫,通过比较它们的名字、年龄、重量、颜色属性来看它们是否相同。

实现过程:

  1. 创建Cat类,在该类中定义了4个变量,name、age、weight、color;
  2. 重写equals()方法来比较对象的属性是否相同;
  3. 重写toString()方法来方便输出对象;

代码如下:

import java.awt.Color;public class Cat {//创建变量private String name;private int age;private double weight;private Color color;//构造方法,初始化变量public Cat(String name, int age, double weight, Color color) {this.name = name;this.age = age;this.weight = weight;this.color = color;}@Overridepublic boolean equals(Object obj) {//将Cat类转换为objCat cat = (Cat) obj;//比较名字、年龄、重量、颜色是否相同return name.equals(cat.name) && (age == cat.age) && (weight == cat.weight) && (color.equals(cat.color));}@Overridepublic String toString() {StringBuilder sb = new StringBuilder();sb.append("名字:" + name + "\n");sb.append("年龄:" + age + "\n");sb.append("重量:" + weight + "\n");sb.append("颜色:" + color + "\n");return sb.toString();}public static void main(String[] args) {//创建三只宠物猫对象Cat cat1 = new Cat("Java", 12, 21, Color.BLACK);Cat cat2 = new Cat("C++", 12, 21, Color.WHITE);Cat cat3 = new Cat("Java", 12, 21, Color.BLACK);//输出宠物猫信息System.out.println("猫咪1号:\n" + cat1);System.out.println("猫咪2号:\n" + cat2);System.out.println("猫咪3号:\n" + cat3);//比较宠物猫是否相同System.out.println("猫咪1号是否与猫咪2号相同:" + cat1.equals(cat2));System.out.println("猫咪1号是否与猫咪3号相同:" + cat1.equals(cat3));}
}

返回结果:

equals()方法重写相关推荐

  1. Java中关于==和equal的区别 以及equals()方法重写

    例子i: string1="aaa"; string2="aaa"; String string3=new String("aaa"); S ...

  2. Java中的equals()方法重写

    public boolean equals(Object obj) {return (this == obj); } Object类提供的 equals() 方法默认是用 == 来进行比较的,也就是说 ...

  3. 接口、抽象类、方法复写、类Equals方法重写

    接口: /** Java接口中的數據成員必須初始化,該成員有隱藏的final.satic.常量,* 一次賦值后不可在賦值* 成員方法訪問修飾符必須是公共修飾符,可以顯示聲明也可以不聲明* 成員方法必須 ...

  4. equals方法重写详解

    /**首先要新建一个类,定义成员变量,通过重写* equals()方法比较成员变量的值*/package july.star.equals;/*** 首先要新建一个类,定义成员变量,通过重写* equ ...

  5. 判断两个学生类对象是否一致使用equals方法重写时判断条件使用“==”、“String自带的equals”不同所带来的问题

    重写equals方法判断条件使用"=="的情况 public class Test06{public static void main(String[] args){Student ...

  6. java基础—Objcet中的equals方法重写

    package mytest;public class Test1{public static void main(String[] args) {Person p1 = new Person(20) ...

  7. java中equals方法重写详解(彻底搞定)

    首先上案例: public static void main(String[] args){String str1 = "abc";String str2 = "abc& ...

  8. java equals方法重写_Java重写equals方法

    为什么equals() 方法需要重写? 判断连个对象在逻辑上是否相等,如果根据类成员变量来判断两个的实力是否相等,而继承Object中的 equals 方法只能判断两个引用变量是否是同一个对象.这样我 ...

  9. Java中equals()方法重写

    Java中的equals()方法是在Object类中定义,Object类是所有类的父类.换句话说,任何类都隐含地继承了该方法.判断两个对象的内容是否相同,必须使用equals()方法,对于没有重写该方 ...

最新文章

  1. 函数声明(函数原型)的一些关键技巧
  2. 阿里巴巴拿下奥运顶级赞助商
  3. boost::ReadablePropertyMapConcept用法的测试程序
  4. 运维:Windows 系统安全日志中登录类型介绍
  5. web service接口_win7 添加环回网卡+H3C 模拟器 防火墙开启Web功能
  6. 微信小程序数据拼接_微信小程序 数据预拉取
  7. 【计算机组成原理】Cache
  8. 肌肉男比常人多了哪些烦恼?
  9. Terracotta - 分布式共享对象
  10. C++算法学习(力扣:1003. 检查替换后的词是否有效)
  11. 软件测试方法和技术知识点简摘
  12. 手机html禁止复制,网页禁止复制文字?学会这六招,全网内容任你免费复制!...
  13. Google官方架构MVI
  14. 怎样创建一个计算机用户,如何创建域用户账户
  15. 02 离线安装管理ceph图形化界面calamari
  16. 2019年终总结,一朝看尽长安花
  17. 使用R语言实现的城市空气质量分析模型
  18. Jetson TX2 apt换源
  19. 每天一例多线程[day18]-----ThreadPoolExecutor
  20. OSChina 周五乱弹 —— 性感海星在线翘臀

热门文章

  1. SAM,ACAM,PAM 辨析
  2. 贾跃亭与许家印“婚变”或涉FF控制权 广州工厂进展缓慢
  3. 基于ZYNQ平台的卷积神经网络加速器设计及其应用研究
  4. java用factory_这是否使用Factory设计模式? (java)
  5. pppoe linux 配置文件,arm-linux配置pppoe
  6. Linux修改命令提示符字体颜色(PS1变量)
  7. Android R Launcher3修改app名称字体大小
  8. 开车旅行(drive)
  9. wps如何自己制作流程图_WPS如何制作流程图,怎么才能制作有创意的专业流程图...
  10. 盘点计算机界十位顶级人物,看看你认识几个?