检查两个对象是否具有相同的属性

时间:2018-02-03 15:02:14

标签: java object attributes boolean

您好我想比较两个对象是否具有相同的属性 我创造了John和John2,在将John与John 2进行比较时,这是假的,将John与John本人比较是真的,为什么呢?

public class Test {

    public static void main(String[] args) {
        Student John = new Student("John", 15);
        Student John2 = new Student("John", 15);

        System.out.println(John.equals(John2)); // FALSE why ?
        System.out.println(John.equals(John)); // TRUE 
    }

}

public class Student {

    String name;
    int age;

    public Student(String name, int age) {

        this.name = name;
        this.age = age;
    }

    public boolean egal(Student c) {

        return ((this.name).equals(c.name) && (this.age) == (c.age));
    }
}

1 个答案:

答案 0 :(得分:4)

因为您使用默认的equals()方法而不是您创建的方法egal()。如果您致电egal(),则会看到所需的输出。

或者不是在类中创建一个新的egal()方法ovverride现有的相等方法。