Files
aston-team-project/app/src/main/java/ru/project/student/Student.java
T
Артющик Анастасия 5e71d27885 fix(student): add hashCode check to equals
2026-08-26 10:49:38 +04:00

71 lines
2.0 KiB
Java

package ru.project.student;
import java.util.Objects;
public class Student {
private final String groupNumber;
private final double averageGrade;
private final String recordBookNumber;
Student(String groupNumber, double averageGrade, String recordBookNumber) {
if (groupNumber == null || groupNumber.isBlank()) {
throw new IllegalArgumentException("Group number cannot be empty");
}
if (averageGrade < 0.0 || averageGrade > 5.0) {
throw new IllegalArgumentException("Average grade must be between 0.0 and 5.0");
}
if (recordBookNumber == null || recordBookNumber.isBlank()) {
throw new IllegalArgumentException("Record book number cannot be empty");
}
this.groupNumber = groupNumber;
this.averageGrade = averageGrade;
this.recordBookNumber = recordBookNumber;
}
public String getGroupNumber() {
return groupNumber;
}
public double getAverageGrade() {
return averageGrade;
}
public String getRecordBookNumber() {
return recordBookNumber;
}
@Override
public String toString() {
return "Student{" +
"groupNumber='" + groupNumber + '\'' +
", averageGrade=" + averageGrade +
", recordBookNumber='" + recordBookNumber + '\'' +
'}';
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
if (this.hashCode() != obj.hashCode()) {
return false;
}
Student student = (Student) obj;
return Double.compare(averageGrade, student.averageGrade) == 0
&& Objects.equals(groupNumber, student.groupNumber)
&& Objects.equals(recordBookNumber, student.recordBookNumber);
}
@Override
public int hashCode() {
return Objects.hash(groupNumber, averageGrade, recordBookNumber);
}
}