📜  Java中的属性 equals(value) 方法及示例(1)

📅  最后修改于: 2023-12-03 15:02:01.996000             🧑  作者: Mango

Java中的属性equals(value)方法及示例

在Java中,属性(Field)是一个类中的变量,用于存储对象的数据。equals(value)方法用于比较属性的值是否相等。

语法
public boolean equals(Object obj)

示例:假设有以下Person类,其中有name和age两个属性。

public class Person {
    private String name;
    private int age;
    
    // 构造方法、getter和setter方法

    @Override
    public boolean equals(Object obj) {
        if (this == obj) return true;
        if (obj == null || getClass() != obj.getClass()) return false;
        Person person = (Person) obj;
        return age == person.age && Objects.equals(name, person.name);
    }
}

在equals方法中,通过实例自便this与参数obj作比较。如果是同一对象,返回true;若参数对象为null或类不一致,返回false;最后比较两个对象属性值是否相等,相等返回true,不相等返回false。

示例

假设有以下代码:

public class EqualsDemo {
    public static void main(String[] args) {
        Person p1 = new Person("张三", 20);
        Person p2 = new Person("张三", 20);
        
        System.out.println(p1.equals(p2)); // true
        
        Person p3 = new Person("李四", 22);
        
        System.out.println(p1.equals(p3)); // false
    }
}

通过equals方法比较p1和p2两个对象,返回true。再比较p1和p3两个对象,返回false。

注意:在重写equals方法时,若需要比较属性,需要使用Objects.equals()方法进行比较。此处的Objects是java.util.Objects类,在Java7中新增加的。由于在equals方法中需要频繁的判断null,并进行比较,使用Objects.equals方法可以简化代码,并且更加安全可靠。