String类型比较时不能用==,要用equals
package day20;
public class Test04 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Student s1 = new Student(111,"二小");
Student s2 = new Student(111,"二小");
//System.out.println(s1==s2);//false
System.out.println(s1.equals(s2));//true
}
}
package day20;
public class Student {
//学号
int no;
//所在学校
String school;
//构造方法
public Student() {
}
public Student(int no, String school) {
this.no = no;
this.school = school;
}
//重写toString方法
public String toString() {
return "学号" + no + ",所在学校名称" + school;
}
//重写equals方法
//当一个学生的学号相等并且学校相同时,表示同一个学生
public boolean equals(Object obj) {
if( obj == null || !(obj instanceof Student)) {
return false;
}
if(this==obj) {
return true;
}
//obj向下转型成Student
//注:学校时String类型比较时不能用==,要用equals
Student s = (Student)obj;
return this.no == s.no && this.school.equals(s.school);
}
}