Java中equals()知识点总结 equals()方法是Java中一个常用的方法,它用于比较两个对象是否相等。下面我们将详细讲解equals()方法的使用和覆盖。 我们需要了解equals()方法的本意。在Object对象中定义的equals()方法的比较规则为:当参数obj引用的对象与当前对象为同一个对象时,就返回true,否则返回false。这个方法的作用是确定两个对象的引用是否相同。例如,在下面的代码中,我们创建了两个Fish对象,f1和f2,它们的weight和color属性相同,但是它们的引用不同。因此,f1 == f2和f1.equals(f2)的结果都是false。 ```java public class Fish { private int weight; private String color; public Fish(int weight, String color) { this.color = color; this.weight = weight; } public int getWeight() { return weight; } public void setWeight(int weight) { this.weight = weight; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } } public class EqualsTest { public static void main(String[] args) { Fish f1 = new Fish(1, "blue"); Fish f2 = new Fish(1, "blue"); System.out.println(f1 == f2); System.out.println(f1.equals(f2)); } } ``` 在JDK类中有一些类覆盖了Object类的equals()方法,比较规则为:如果两个对象的类型一致,并且内容一致,则返回true。这些类包括java.io.File、java.util.Date、java.lang.String、包装类(Integer、Double等)。例如,在下面的代码中,我们创建了两个String对象,s1和s2,它们的内容相同,因此s1.equals(s2)的结果为true。 ```java public class EqualsTest { public static void main(String[] args) { String s1 = new String("sss"); String s2 = new String("sss"); System.out.println(s1 == s2); System.out.println(s1.equals(s2)); } } ``` 如果我们要自己覆盖equals()方法,让其比较内容或者有别的使用方法。例如,在下面的代码中,我们覆盖了Fish类的equals()方法,使其比较weight和color属性的值。 ```java public class Fish { private int weight; private String color; public Fish(int weight, String color) { this.color = color; this.weight = weight; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || getClass() != obj.getClass()) { return false; } Fish fish = (Fish) obj; return weight == fish.weight && Objects.equals(color, fish.color); } } ``` equals()方法是一个非常重要的方法,它用于比较两个对象是否相等。我们可以根据需要覆盖equals()方法,使其比较内容或者有别的使用方法。但是,我们需要注意equals()方法的本意和使用规则,以免引起错误。
- 粉丝: 1
- 资源: 899
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 技术资料分享FATFS文件系统的移植很好的技术资料.zip
- 技术资料分享FatFs使用说明-基于SmartARMCortexM3-1700很好的技术资料.zip
- 技术资料分享FATFS浅谈很好的技术资料.zip
- 技术资料分享Fatfs经典资料很好的技术资料.zip
- 技术资料分享FAT32文件系统详解很好的技术资料.zip
- 技术资料分享FAT32简单教材很好的技术资料.zip
- 加强版Claude提示词
- java医院预约挂号平台源码 医院挂号源码数据库 MySQL源码类型 WebForm
- 科目三-自用-静止商用
- JAVA基于SSM的java智能制造系统源码数据库 MySQL源码类型 WebForm