-
通常比较一个对象或者内容直接通过
==
、equals
进行比较,默认比较的都是指针地址,但有时候需要比较的是两个对象的内容或者属性值是否一致。 -
遇到这种需求的时候,要么就是便利比较一下两个对象,或者在对象里面写个比较方法进行判断,其实也是可以重写
Object
自带的equals
方法来实现的。 -
Person.java
类对象public class Person { // 对象属性 String name; int age; // 无参构造函数 public Person () { } // 有参构造函数 public Person (String name, int age) { this.name = name; this.age = age; } // 重写 equals 方法 @Override public boolean equals(Object obj) { // 默认走指针比较 // return super.equals(obj); // 自定义对象内容比较 // 是否是同一个对象 if (this == obj) { return true; } // 是否是同一个类 if (obj == null || getClass() != obj.getClass()) { return false; } // 转换为同一个类 Person p = (Person)obj; // 比较内容 if (age != p.age) { return false; } if (name != p.name) { return false; } // 返回相同 return true; } }
-
main.java
入口函数public class test { public static void main(String[] args) { // 创建两个对象 Person p1 = new Person(); Person p2 = new Person(); // Person p1 = new Person("dzm", 20); // Person p2 = new Person("xyq", 20); // == 比较,比较两个对象的指针地址 System.out.println(p1 == p2); // equals 比较,默认比较两个对象的指针地址 // System.out.println(p1.equals(p2)); // 如果需要比较两个对象的内容是否一致,可以重写 equals 来实现 System.out.println(p1.equals(p2)); } }
Java 类对象(Object)内容(属性值)比较(equals)
最新推荐文章于 2022-11-10 09:51:34 发布