📜  用示例映射Java中的 equals() 方法(1)

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

用示例映射Java中的 equals() 方法

在Java中,equals()方法用于比较两个对象是否相同。在本文中,我们将通过示例来说明如何使用equals()方法。

示例

在这个例子中,我们将创建一个名为Person的类,该类具有以下属性:name(姓名)和age(年龄)。然后我们将创建两个Person对象,分别命名为p1和p2,以演示equals()方法。

public class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

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

在上面的代码中,我们为Person类重写了equals()方法。在equals()方法中,我们首先使用this == o判断两个对象是否相同。如果相同,则返回true。否则我们使用getClass()方法来比较传入对象的类型和当前对象的类型,如果不同,则返回false。最后,我们比较两个Person对象的name和age属性是否相等。

接下来,我们将创建两个Person对象,并将它们传递给equals()方法进行比较:

Person p1 = new Person("Tom", 30);
Person p2 = new Person("Tom", 30);
System.out.println(p1.equals(p2)); // true

在上面的代码中,我们创建了两个Person对象,p1和p2,它们的name和age属性都相同。我们调用p1的equals()方法并将p2作为参数传递。由于p1和p2的属性相同,equals()方法将返回true。

下面我们再做一个演示,当p1和p2的属性不同时equals()方法将返回false:

Person p1 = new Person("Tom", 30);
Person p2 = new Person("Mike", 25);
System.out.println(p1.equals(p2)); // false

在上面的代码中,我们创建了两个Person对象,p1和p2,它们的name和age属性都不相同。我们调用p1的equals()方法并将p2作为参数传递。由于p1和p2的属性不相同,equals()方法将返回false。

总结

在Java中,equals()方法用于比较两个对象是否相同。在实现equals()方法时,我们需要按照特定的规则比较对象的属性。在上面的示例中,我们演示了如何比较Person对象的属性,但在现实中,您可能需要根据您的需求来实现equals()方法。