您好我想比较两个对象是否具有相同的属性 我创造了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));
}
}
答案 0 :(得分:4)
因为您使用默认的equals()
方法而不是您创建的方法egal()
。如果您致电egal()
,则会看到所需的输出。
或者不是在类中创建一个新的egal()
方法ovverride现有的相等方法。