equals()方法重写
java中任何一个类都是Object类的直接或间接子类,如果类没有超类,则它默认继承自Object类,在Object类中,实现了很多有用的方法,equals()方法默认操作检测两个对象是否具有相同的引用,这虽然很合理,但是并没有实用价值,通常需要重写该方法来比较类的域是否相等,如果参与比较的所有域都相等,则对象也相等,否则不等,对于基本类型恶意直接使用"=="进行判断,对于引用类型则需要重写equals()方法。该方法的声明如下:
public boolean equals(Object obj) {
}
本实例将创建三只宠物猫,通过比较它们的名字、年龄、重量、颜色属性来看它们是否相同。
实现过程:
- 创建Cat类,在该类中定义了4个变量,name、age、weight、color;
- 重写equals()方法来比较对象的属性是否相同;
- 重写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()方法重写相关推荐
- Java中关于==和equal的区别 以及equals()方法重写
例子i: string1="aaa"; string2="aaa"; String string3=new String("aaa"); S ...
- Java中的equals()方法重写
public boolean equals(Object obj) {return (this == obj); } Object类提供的 equals() 方法默认是用 == 来进行比较的,也就是说 ...
- 接口、抽象类、方法复写、类Equals方法重写
接口: /** Java接口中的數據成員必須初始化,該成員有隱藏的final.satic.常量,* 一次賦值后不可在賦值* 成員方法訪問修飾符必須是公共修飾符,可以顯示聲明也可以不聲明* 成員方法必須 ...
- equals方法重写详解
/**首先要新建一个类,定义成员变量,通过重写* equals()方法比较成员变量的值*/package july.star.equals;/*** 首先要新建一个类,定义成员变量,通过重写* equ ...
- 判断两个学生类对象是否一致使用equals方法重写时判断条件使用“==”、“String自带的equals”不同所带来的问题
重写equals方法判断条件使用"=="的情况 public class Test06{public static void main(String[] args){Student ...
- java基础—Objcet中的equals方法重写
package mytest;public class Test1{public static void main(String[] args) {Person p1 = new Person(20) ...
- java中equals方法重写详解(彻底搞定)
首先上案例: public static void main(String[] args){String str1 = "abc";String str2 = "abc& ...
- java equals方法重写_Java重写equals方法
为什么equals() 方法需要重写? 判断连个对象在逻辑上是否相等,如果根据类成员变量来判断两个的实力是否相等,而继承Object中的 equals 方法只能判断两个引用变量是否是同一个对象.这样我 ...
- Java中equals()方法重写
Java中的equals()方法是在Object类中定义,Object类是所有类的父类.换句话说,任何类都隐含地继承了该方法.判断两个对象的内容是否相同,必须使用equals()方法,对于没有重写该方 ...
最新文章
- 函数声明(函数原型)的一些关键技巧
- 阿里巴巴拿下奥运顶级赞助商
- boost::ReadablePropertyMapConcept用法的测试程序
- 运维:Windows 系统安全日志中登录类型介绍
- web service接口_win7 添加环回网卡+H3C 模拟器 防火墙开启Web功能
- 微信小程序数据拼接_微信小程序 数据预拉取
- 【计算机组成原理】Cache
- 肌肉男比常人多了哪些烦恼?
- Terracotta - 分布式共享对象
- C++算法学习(力扣:1003. 检查替换后的词是否有效)
- 软件测试方法和技术知识点简摘
- 手机html禁止复制,网页禁止复制文字?学会这六招,全网内容任你免费复制!...
- Google官方架构MVI
- 怎样创建一个计算机用户,如何创建域用户账户
- 02 离线安装管理ceph图形化界面calamari
- 2019年终总结,一朝看尽长安花
- 使用R语言实现的城市空气质量分析模型
- Jetson TX2 apt换源
- 每天一例多线程[day18]-----ThreadPoolExecutor
- OSChina 周五乱弹 —— 性感海星在线翘臀
热门文章
- SAM,ACAM,PAM 辨析
- 贾跃亭与许家印“婚变”或涉FF控制权 广州工厂进展缓慢
- 基于ZYNQ平台的卷积神经网络加速器设计及其应用研究
- java用factory_这是否使用Factory设计模式? (java)
- pppoe linux 配置文件,arm-linux配置pppoe
- Linux修改命令提示符字体颜色(PS1变量)
- Android R Launcher3修改app名称字体大小
- 开车旅行(drive)
- wps如何自己制作流程图_WPS如何制作流程图,怎么才能制作有创意的专业流程图...
- 盘点计算机界十位顶级人物,看看你认识几个?