今天的目的是把原本只會處理單一學生的程式,重構成支援多個學生,用物件導向的寫法來設計。
手寫有一個新class:StudentManager
負責「管理學生」。它不是單一學生,而是「一群學生」的集合操作器。遵循 OOP (Object-Oriented Programming) 思想,把「管理功能」抽出來,不放在 main 裡。
ArrayList
Java 的 集合類別 (Collection),可動態新增/刪除元素。
跟之前用 array (陣列) 不一樣,ArrayList 長度會自動調整,因此適合在這裡管理多個學生。
目的的OOP:
是要把程式切成多個 class,每個 class 負責不同角色:
Student = 單一學生(描述資料與行為)。
而今天的改動跟之前單純 Student class 的differnece在於之前的 Student class
只有 fields(例如 name, age)
只有 methods(例如 introduce())
一個 Student 物件就是一個學生 → 只能單獨用
現在加上 StudentManager新增了一個「管理層級」的 class (StudentManager)
新的 class 負責:
集合管理:把多個學生存進 ArrayList
操作功能:例如
addStudent(Student s) → 新增學生
showAll() → 印出所有學生
averageAge() → 計算平均年齡
findByName(String name) → 搜尋學生
因此不同於之前只能建立單一 Student。
至於實作起還會像是: