- 基本数据类型比较是否相等,使用==
- 引用数据类型使用equals判断是否相等
public class Text {
public static void main(String[] args) {
Student student = new Student(1234,"一中");
Student student1 = new Student(1234,"一中");
Student student2 = new Student(1234,"二中");
System.out.println(student.equals(student1));
System.out.println(student.equals(student2));
}
}
class Student{
//学号
private int no;
//学校
private String school;
public Student() {
}
public Student(int no, String school) {
this.no = no;
this.school = school;
}
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
@Override
public String toString() {
return "学号:"+this.getNo()+" 学校:"+this.getSchool();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || !(o instanceof Student)) return false;
Student student = (Student) o;
return this.no == student.no && this.school.equals(student.school);
}
}
/*
true
false
*/
- 所有类的equals方法都需要重写,因为Object中的equals方法比较的是两个对象的内存地址,我们需要比较内容,所以需要重写
- String 类中重写了equals方法,判断字符串是否相等使用equals方法