В ниже приведенном коде метод checkForPresence() должен в качестве параметра принимать группу, а не массив. Как это сделать?
public class Professor extends Group {
Professor(String groupCode, Students[] studentsList) {
super(groupCode, studentsList);
}
AbstractCheck auditForStudent;
public AbstractAudit checkForPresence() {
System.out.println("Проверка наличия студентов группы " + getGroupCode() + ":");
for (Students audit : getStudentsInGroup()) {
if (audit.isPresent())
auditForStudent = new Present();
else
auditForStudent = new Absent();
}
System.out.println(auditForStudent.checkForPresence());
return null;
}
}
Профессор (Professor) не является группой (Group), он только работает с ней. Следовательно, наследование здесь не нужно, но подойдет композиция.
Professor принимает группу с которой будет работать (в реальности, это тоже должен быть список и он может быть изменен Professorом или Deparmentом).
class Group {
private String id;
private Student[] list;
// getters & setters
}
У Group есть id и нам не нужно передавать его отдельно в конструктор Professorа.
class Professor {
private Group group;
public Professor(Group group) {
this.group = group;
}
public AbstractAudit checkForPresence() {
System.out.println("Проверка наличия студентов группы " + group.getId() + ":");
for (Student student : group.getList()) {
...
}
return null;
}
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости