Может ли метод проверять объект вместо массива?

250
12 февраля 2018, 03:55

В ниже приведенном коде метод 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;
    }
}
Answer 1

Профессор (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;
    }
}
READ ALSO
Split массива в Java

Split массива в Java

Как можно массив байтов разделить на другие массивы между нулём, как это делает метод split со строками?

209
AndroidStudio: FileNotFoundException при сборке проекта

AndroidStudio: FileNotFoundException при сборке проекта

Во время сборки android-приложения появляется такая ошибка

213
Проверка на ввод только символов в строке

Проверка на ввод только символов в строке

Как сделать так, чтобы выполнялась проверка вводимых символов в строке? От "А" до "Я" и от "а" до "я"И если встречается символ, отличный от русского,...

145
Управление потоками. Java. Wait() и Notify()

Управление потоками. Java. Wait() и Notify()

Данная мне задача состоит в создании двух потоков, один из которых записывает значение в переменную, а другой после него считывает это значение...

187