Student.java 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package exericse.exericse02;
  2. /**
  3. * @author WanJl
  4. * @version 1.0
  5. * @title Student
  6. * @description 学生类
  7. * @create 2026/7/29
  8. */
  9. public class Student {
  10. // 属性
  11. private String name; // 姓名
  12. private Integer age; // 年龄(使用包装类)
  13. private String studentId; // 学号
  14. /**
  15. * 无参构造方法
  16. */
  17. public Student() {
  18. }
  19. /**
  20. * 全参构造方法
  21. * @param name 姓名
  22. * @param age 年龄
  23. * @param studentId 学号
  24. */
  25. public Student(String name, Integer age, String studentId) {
  26. this.name = name;
  27. this.age = age;
  28. this.studentId = studentId;
  29. }
  30. // ========== Getter 和 Setter 方法 ==========
  31. public String getName() {
  32. return name;
  33. }
  34. public void setName(String name) {
  35. this.name = name;
  36. }
  37. public Integer getAge() {
  38. return age;
  39. }
  40. public void setAge(Integer age) {
  41. this.age = age;
  42. }
  43. public String getStudentId() {
  44. return studentId;
  45. }
  46. public void setStudentId(String studentId) {
  47. this.studentId = studentId;
  48. }
  49. /**
  50. * 重写 toString 方法,方便打印对象信息
  51. */
  52. @Override
  53. public String toString() {
  54. return "Student{" +
  55. "name='" + name + '\'' +
  56. ", age=" + age +
  57. ", studentId='" + studentId + '\'' +
  58. '}';
  59. }
  60. /**
  61. * 重写 equals 方法,基于学号判断两个学生是否相等
  62. */
  63. @Override
  64. public boolean equals(Object obj) {
  65. if (this == obj) return true;
  66. if (obj == null || getClass() != obj.getClass()) return false;
  67. Student student = (Student) obj;
  68. return studentId != null && studentId.equals(student.studentId);
  69. }
  70. /**
  71. * 重写 hashCode 方法,基于学号生成哈希值
  72. */
  73. @Override
  74. public int hashCode() {
  75. return studentId != null ? studentId.hashCode() : 0;
  76. }
  77. }