Java 面向對象核心觀念
Java 是純粹的面向對象語言,完整支援封裝、繼承、多態三大特性。程式最小單位是類別,類別描述一類事物的共同屬性與行為,實例化產生物件對應現實世界具體事物。整個系統由相互協作的物件組成。
結構化 vs 面向對象
| 維度 | 結構化程式設計 | 面向對象程式設計 |
| 最小單元 | 函數 | 類別 |
| 核心思想 | 自頂向下,功能分解 | 找出物件,封裝數據與行為 |
| 流程控制 | 主函數呼叫子函數 | 物件間訊息傳遞 |
| 三大基本結構 | 順序、選擇、循環(兩者通用) |
UML 統一建模語言
UML 是軟體密集系統可視化建模標準語言,支援從需求分析到測試的全生命週期:
- 用例圖:捕獲用戶需求,描述角色與功能
- 類別圖:靜態結構,展示類別、屬性、方法、關聯、繼承、依賴
- 序列圖/協作圖:動態行為,物件間訊息傳遞時序
- 狀態圖/活動圖:狀態轉換與流程控制
- 部署圖/元件圖:物理架構與元件依賴
面向對象開發流程 (OOA/OOD/OOI)
- OOA(面向對象分析):識別問題域核心概念,建立用例模型與分析類別圖
- OOD(面向對象設計):引入技術細節類別(UI、資料庫、通訊等),綜合為設計模型
- OOI(面向對象實現):程式碼實現,對應設計模型
類別與物件關鍵點
- 類別 = 屬性(狀態)+ 方法(行為)
- 物件生命週期:建立 → 使用 → 銷毀(GC 回收)
- 訊息傳遞 = 呼叫物件方法,包含目標物件、方法名、參數、回傳值
- 封裝:將屬性設為
private,提供 public 存取方法,實現資訊隱藏
學習建議
- 先理解「物件是什麼」,再學語法細節
- 多畫類別圖、序列圖訓練建模思維
- 實作小專案體驗「高內聚、低耦合」設計原則
- 閱讀經典開源專案原始碼(如 Spring、Guava)學習最佳實務