Files

47 lines
1.7 KiB
Markdown
Raw Permalink Normal View History

# Техническое задание: класс `Student`
## Задача
Реализовать класс `Student` как единственную точку проверки корректности данных. Объект класса `Student` не может быть создан с некорректными данными.
## Требования
1. Класс `Student` содержит три поля:
- `groupNumber`;
- `averageGrade`;
- `recordBookNumber`.
2. Все поля должны быть `private` и неизменяемыми после создания объекта.
3. Проверка корректности данных должна находиться в классе `Student`.
4. Реализовать класс `StudentBuilder` для создания объектов `Student`.
5. В `StudentBuilder` реализовать методы:
- `setGroupNumber(...)`;
- `setAverageGrade(...)`;
- `setRecordBookNumber(...)`;
- `build()`.
6. Метод `build()` должен создавать только корректный объект `Student`. При некорректных данных должно выбрасываться исключение.
7. Реализовать для `Student`:
- методы получения значений полей;
- `toString()`;
- `equals()`;
- `hashCode()`.
## Результат
Должны быть реализованы два независимых класса:
```text
Student.java
StudentBuilder.java
```
Классы не должны зависеть от сортировки, коллекции, меню и ввода данных.