iT邦幫忙

2025 iThome 鐵人賽

DAY 9
0

今天的目的是把原本只會處理單一學生的程式,重構成支援多個學生,用物件導向的寫法來設計。
手寫有一個新class:StudentManager
負責「管理學生」。它不是單一學生,而是「一群學生」的集合操作器。遵循 OOP (Object-Oriented Programming) 思想,把「管理功能」抽出來,不放在 main 裡。

ArrayList
Java 的 集合類別 (Collection),可動態新增/刪除元素。
跟之前用 array (陣列) 不一樣,ArrayList 長度會自動調整,因此適合在這裡管理多個學生。

目的的OOP:
是要把程式切成多個 class,每個 class 負責不同角色:

Student = 單一學生(描述資料與行為)。

StudentManager = 管理學生集合(提供新增、搜尋、計算平均的方法)。

而今天的改動跟之前單純 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。
至於實作起還會像是:
https://ithelp.ithome.com.tw/upload/images/20250923/20178846IYfS5q2U5Z.png


上一篇
Day 8 class and constuctor;
系列文
Java 學生管理系統:打造可新增、刪除、修改、搜尋並保存資料的完整 CLI 應用9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言