import java.util.Objects; public class Student { //成员变量 private int id; //编号 private String name; //姓名 private int score; //成绩 //构造方法 public Student() { } public Student(int id, String name, int score) { this.id = id; this.name = name; this.score = score; } //成员方法 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } //toString() 用来将对象转成其对应的字符串形式 @Override public String toString() { return "Student{" + "id=" + id + ", name='" + name + '\'' + ", score=" + score + '}'; } //equals() 比较两个对象是否相同 // //自定义版本的重写equals方法 // //假设id属性相同,两个对象就是一个对象 // public boolean equals(Object ob) { //s1.equals(s2) // /* // this:谁调用,this就表示谁 // ob:s2 // */ // //向下转型 // Student s2 = (Student)ob; // return this.id == s2.id; // } //equals() 比较两个对象是否相同 //通过快捷键的方式生成 @Override public boolean equals(Object o) { //s1.equals(s2) //this: s1 o: s2 //比较两个对象的地址值是否相同,提高效率 //补充:如果if语句控制的语句体只有一行代码,那么{}可以省略不写 if (this == o) return true; //判断要比较的两个对象是否是同一个类型的对象,getClass结果是字节码文件,提高程序的健壮性(例如:护士和学生比较,类型不同,直接结束返回false) if (o == null || getClass() != o.getClass()) return false; //向下转型,正常的逻辑代码 Student student = (Student) o; return id == student.id && score == student.score && name.equals(student.name); } @Override public int hashCode() { return Objects.hash(id, name, score); } }
作者本人所有随笔仅为学习笔记,仅供参考