123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- package J20250722;
- import java.util.Objects;
- /**
- * @author WanJl
- * @version 1.0
- * @title Student
- * @description 实体类,这种类主要描述现实中某一个事物的抽象表现形式。
- * 实体类类名:要跟现实中事物有所关联,类名要有意义
- * 类要有成员属性 一般都是private修饰的
- * 有成员属性的getter 和setter方法
- * 有无参构造方法和有参构造方法
- * 要重写toString()方法
- * 要重写equals方法和hashCode方法
- *
- * @create 2025/7/22
- */
- public class Student implements Comparable<Student>{
- private Integer id;
- private String name;
- private Integer age;
- public Student() {
- }
- public Student(Integer id, String name, Integer age) {
- this.id = id;
- this.name = name;
- this.age = age;
- }
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public Integer getAge() {
- return age;
- }
- public void setAge(Integer age) {
- this.age = age;
- }
- @Override
- public String toString() {
- return "Student{" +
- "id=" + id +
- ", name='" + name + '\'' +
- ", age=" + age +
- '}';
- }
- //当重写了equals方法,同时重写hashCode方法。
- //重写的效果:如果equals方法比较两个对象返回true,那么这两个对象的hashCode必须相同。
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- Student student = (Student) o;
- return Objects.equals(id, student.id) && Objects.equals(name, student.name) && Objects.equals(age, student.age);
- }
- @Override
- public int hashCode() {
- return Objects.hash(id, name, age);
- }
- @Override
- public int compareTo(Student o) {
- //我们可以在里面自己实现比较的规则
- //设置按照年龄排序,如果年龄相同,那么就按照姓名排序,姓名是字符串,
- //String类已经实现了Comparable接口,并且重写compareTo方法
- int r=this.age-o.age;
- r=r==0?this.getName().compareTo(o.getName()):r;
- return r;
- }
- }
|