Хорошим методом oop
было бы добавить метод append()
как в класс Group
, так и в класс Faculty
.
Поскольку и Group
, и Faculty
имеют списки, содержащие несколько объектов, было бы неплохо сгенерировать ваших учеников через al oop, либо получая данные от пользователя, либо другим способом, который вы предпочитаете сгенерируйте студентов и добавьте их в список в Arraylist
Group
.
Для класса Faculty
эта идея подойдет.
Суть oop
не повторять один и тот же код нигде в вашей программе. Поэтому я рекомендую вашему классу Student
просто хранить в нем свою личную информацию. И когда они находятся в объекте Group
, у него есть информация о своей группе, такая же, как когда объект Group
находится в объекте Faculty
, он имеет информацию о факультете студента.
Базовый c структура для вашего Group
, Faculty
может быть такой, как показано ниже.
class Group {
private int groupNumber;
private ArrayList<Student> studentList = new ArrayList<Student>();
public Group(int groupNumber) {
this.groupNumber = groupNumber;
}
public void append(Student student){
this.studentList.add(student);
}
public ArrayList getlist(){
return this.studentList;
}
}
class Faculty {
private ArrayList<Group> groupList = new ArrayList<Group>();
public Faculty(String faculty) {
}
public void append(Group group){
this.groupList.add(group);
}
public ArrayList getlist(){
return this.groupList;
}
}
Затем вы можете настроить свой класс класса Runner, как вы sh. Генерация учеников как вы sh, с помощью цикла или как sh.
class Runner {
public static void main(String[] args) {
Student student1 = new Student ("Steve");
Student student2 = new Student ("Oliver");
Group group1 = new Group(21);
group1.append(student1);
Group group2 = new Group(22);
group2.append(student2);
Faculty faculty1 = new Faculty("Faculty of Mathematics");
faculty1.append(group1);
faculty1.append(group2);
}
}
Более эффективная программа будет выглядеть, как показано ниже. Он генерирует факультет в соответствии с вашим вводом и добавляет к нему каждую группу.
class Runner {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
for(int k=0;k<5;k++) {
Faculty faculty1 = new Faculty(scanner.nextLine());
for(int j=0;j<20;j++) {
Group group = new Group(j);
for (int i = 0; i < 10; i++) {
group.append(new Student(scanner.nextLine()));
}
faculty1.append(group);
}
}
}
}