package com.li.toStringExercise;
public class equalsExercise2 {
public static void main(String[] args) {
Student student1 = new Student(1,"Li");
Student student2 = new Student(1,"Li");
System.out.println(student1.equals(student2));
}
}
class Student{
private int number;
private String name;
public Student(int number, String name) {
this.number = number;
this.name = name;
}
public Student() {
}
// 这是编译器自动生成的,但是在初学的时候还是自己手动敲这些equals代码比较好
/* @Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Student)) return false;
Student student = (Student) o;
return number == student.number && Objects.equals(name, student.name);
}*/
public boolean equals(Object o){
// if后边带return了,那么就可以不用写else语句了,因为如果if成立就直接跳出了,
// 如果不成立,就直接执行后边的了,有没有else一样
// 如果o是空,那么o也不是Student类型,不用加o == null了
if(!(o instanceof Student) )
return false;
if (this == o)return true;
Student student1 = (Student) o;
// 对于字符串的比较就单纯的吧==换成了.equals()
return number == student1.number && this.name.equals(student1.name);
}
}