При выполнении задания продумайте следующие аспекты:
имена полей и типы данных;
как реализовать "уникальность" номера зачетной книжки и номера группы в рамках приложения;
модификаторы доступа для полей и методов;
тип методов, которые требуется реализовать;
если надо, реализуйте приватные методы и добавьте приватные поля, которые должны обеспечивать работу публичных методов.
Создайте публичный класс Student
– студента некоторой специальности некоторого университета. Класс не хранит явным образом информацию о специальности, номере группы\потока, предметах, университете.
В классе должны быть следующие поля:
имя;
фамилия;
год поступления;
уникальный шестизначный номер зачетной книжки.
принимает на вход имя и фамилию. При использовании данного конструктора, в номер зачетной книжки записывается 0;
принимает на вход имя, фамилию, номер зачетной книжки.
метод возвращает имя студента;
метод изменяет имя студента;
метод возвращает фамилию студента;
метод изменяет фамилию студента;
метод возвращает номер зачетной книжки;
метод изменяет номер зачетной книжки;
метод возвращает год поступления;
метод изменяет год поступления.
Создайте публичный класс Group
– студенческой группы. Класс не хранит явным образом специальность и название университета.
В классе должны быть следующие поля:
уникальный номер (в пределах специальности);
массив студентов.
принимает на вход номер группы (в этом случае, количество студентов записывается как 0);
принимает на вход номер группы, количество студентов (инициализация массива, но его элементы остаются пустыми);
принимает на вход массив студентов.
метод возвращает номер группы;
метод изменяет номер группы;
метод возвращает общее число студентов группы;
метод возвращает ссылку на студента по номеру зачетной книжки;
метод удаляет студента из группы по номеру зачетной книжки (помните про корректное удаление элемента из массива);
метод добавляет нового студента в группу (принимает на вход ссылку на объект Student, если массив уже полностью заполнен - реализуйте расширение массива);
метод возвращает массив студентов;
метод возвращает массив студентов, отсортированный по фамилиям (подумайте, как это сделать; если фамилии одинаковы - сортируйте по имени; если имена одинаковы - по номеру зачетной книжки).
В классе Main
напишите код, чтобы протестировать функциональность созданных классов и реализованных методов
Класс Group
содержит внутри себя массив студентов. Методы класса Group
требуют увеличения или уменьшения размера массива, вставки элемента внутри массива, вывод данных массива в отсортированном порядке.
Итого, есть данные и операции над данными (вставка, удаление, изменение размера, вывод в отсортированном порядке).
Используя механизм инкапсуляции и принципы ООП, модифицируйте класс Group
так, чтобы программа больше соответствовала принципам ООП.