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); } }
作者本人所有随笔仅为学习笔记,仅供参考
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)