007 クラス (クラスの利用)015 解答例

Studentクラスの宣言

// 学生を表すクラス
public class Student {
    private String name;

    // コンストラクタ
    public Student(String name) {
        this.name = name;
    }

    // 名前を取得するメソッド
    public String getName() {
        return name;
    }
}

Universityクラスの宣言

import java.util.ArrayList;
import java.util.List;

// 大学を表すクラス
public class University {
    private String name;
    private List<Student> students;

    // コンストラクタ
    public University(String name) {
        this.name = name;
        this.students = new ArrayList<>();
    }

    // 学生リストを取得するメソッド
    public List<Student> getStudents() {
        return students;
    }

    // 学生を追加するメソッド
    public void addStudent(Student student) {
        students.add(student);
    }

    // 学生の情報を表示するメソッド
    public void displayStudents() {
        System.out.println("University: " + name);
        System.out.println("Students:");
        for (Student student : students) {
            System.out.println("- " + student.getName());
        }
    }
}

利用例

// 利用例のクラス
public class UniversityExample {
    public static void main(String[] args) {
        // 大学オブジェクトの作成
        University university1 = new University("Example University 1");
        University university2 = new University("Example University 2");

        // 学生オブジェクトの作成
        Student student1 = new Student("John Doe");
        Student student2 = new Student("Jane Doe");
        Student student3 = new Student("Bob Smith");

        // 各大学に学生を追加
        university1.addStudent(student1);
        university1.addStudent(student2);
        university2.addStudent(student3);

        // 学生情報の表示
        university1.displayStudents();
        university2.displayStudents();
    }
}

この解答例では、University クラスと Student クラスを作成し、集約関係を表現しています。University クラスには学生を追加するメソッドと学生情報を表示するメソッドが実装されています。最後に、利用例として複数の大学オブジェクトを作成し、各大学に学生を追加して学生情報を表示しています。

「007 クラス」問題集リスト