需求说明:
重写比较贵规则,判断两名学员(Student)是否为同一对象
1、Student相关属性
id(学号)、name(姓名)、age(年龄)
如果两名学员的学号以及姓名相同,则为同一对象
学生类:
public class Students {
private String name;
private int id;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Students() {}
public Students(String name, int id, int age) {
super();
this.name = name;
this.id = id;
this.age = age;
}
public boolean equals(Object ob) {
//自反性
if(this==ob){
return true;
}
//instanceof比较判断是否是同一类或者子父类关系
if(! (ob instanceof Students)){
return false;
}
//判断是同一类或者子父类关系,再将Object类型强转为Students
Students ob1 = (Students)ob;
if(this.id == ob1.id && this.name.equals(ob1.name)) {
return true;
}else {
return false;
}
}
}
测试类:
public class Text01 {
public static void main(String[] args) {
Students student1 = new Students("张三",01,18);
Students student2 = new Students("李四",02,17);
Students student3 = new Students("张三",01,17);
boolean a1 = student1.equals(student2);
boolean a2 = student1.equals(student3);
System.out.println("student1.equals(student2)为"+a1+"
"+"student1.equals(student3)为"+a2);
}
}
测试运行结果: