阿摩線上測驗 登入

申論題資訊

試卷:108年 - 108 專技高考_資訊技師:計算機系統#80990
科目:計算機系統
年份:108年
排序:0

題組內容

三、請詳述並舉例說明以下之物件導向詞彙(Object-Oriented Terms) :(15 分)

申論題內容

(一) aggregation

詳解 (共 1 筆)

詳解 提供者:hchungw
Aggregation(聚合)
定義:
聚合是一種表示類與類之間關係的物件導向設計概念。它描述的是一種“整體-部分”的關係,具體來說,聚合表示一個類型(稱為整體或容器)包含另一個類型(稱為部分或成員),但成員可以獨立於整體存在。這意味著,整體和部分之間的生命週期是不同步的。
特徵:
聚合是一種弱關係(相對於組合關係),即成員可以在沒有整體存在的情況下獨立存在。
在UML(統一建模語言)中,聚合通常用一個空心的菱形連接到整體端來表示。
舉例說明
範例一:班級和學生
在一個學校管理系統中,假設有兩個類:Class(班級)和Student(學生)。
java

class Student {
    private String name;
    public Student(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
}
class Class {
    private String className;
    private List<Student> students;
    public Class(String className) {
        this.className = className;
        this.students = new ArrayList<>();
    }
    public void addStudent(Student student) {
        students.add(student);
    }
    public List<Student> getStudents() {
        return students;
    }
}
在這個例子中:
Class 類包含了 Student 類的實例,但 Student 可以在沒有 Class 存在的情況下獨立存在。例如,一個學生可以在註冊班級之前就存在。
這種情況下,Class 和 Student 之間的關係就是聚合