目錄
一、面向對象基本概念
對象(Object)
類(Class)
抽象(Abstraction)
封裝(Encapsulation)
繼承(Inheritance)
多態(Polymorphism)
接口(Interface)
消息(Message)
覆蓋(Override)
函數重載(Overload)
綁定(Binding)
真題示例:
二、面向對象分析與設計
1. 面向對象分析(OOA)
2. 面向對象設計(OOD)
3. 面向對象測試
測試層次
真題示例:
一、面向對象基本概念
-
對象(Object)
- 由數據(屬性)和操作(方法)構成的封裝體。
- 組成:對象名、屬性、方法。
-
類(Class)
- 現實世界實體的形式化描述,是對象的模板。
- 類的分類:
- 實體類:表示真實實體(如人、物、學生)。
- 接口類(邊界類):提供用戶與系統的交互方式(如窗口、菜單、二維碼、筆、計算機)。
- 控制類:協調活動流(如業務邏輯控制、一個一個地排隊)。
-
抽象(Abstraction)
- 抽取共同特征形成概念,強調主要特征,忽略次要特征。
-
封裝(Encapsulation)
- 信息隱蔽技術,將數據和操作封裝為整體,僅通過接口訪問。
-
繼承(Inheritance)
- 類之間的層次關系(父類與子類),支持單繼承和多繼承。
-
多態(Polymorphism)
- 同一消息不同對象產生不同結果,分為:
- 參數多態(不同參數類型)
- 包含多態(父子類關系)
- 過載多態(同名不同參)
- 強制多態(類型轉換)
- 同一消息不同對象產生不同結果,分為:
-
接口(Interface)
- 定義操作規范(做什么),不定義具體實現(如何做)。
-
消息(Message)
- 對象間交互的請求(如方法調用)。
-
覆蓋(Override)
- 子類重寫父類同名同參的方法。
-
函數重載(Overload)
- 同名函數,參數不同(與繼承無關)。
-
綁定(Binding)
- 靜態綁定:編譯時確定(如普通函數調用)。
- 動態綁定:運行時確定(如多態調用)。
真題示例:
?一個類中可以擁有多個名稱相同而參數表(參數類型或參數個數或參數類型順序)不同的方法,稱為( )。
A.方法標記 B.方法調用 C.方法重載 D.方法覆蓋
- 方法重載(Overload):在同一個類中,多個方法同名但參數不同(類型、個數、順序不同)。
- 方法覆蓋(Override):子類重寫父類同名同參的方法。
- 方法標記:無此術語。
- 方法調用:指執行某個方法,與定義無關。
在某銷售系統中,客戶采用掃描二維碼進行支付。若采用面向對象方法開發該銷售系統,則客戶類屬于()類,二維碼類屬于()類。
A. 接口 B. 實體 C. 控制 D. 狀態
A. 接口 B. 實體 C. 控制 D. 狀態
- 客戶類:代表現實世界的“客戶”實體,屬于實體類。
- 二維碼類:提供支付交互方式(掃描二維碼),屬于接口類(也稱邊界類)。
二、面向對象分析與設計
1. 面向對象分析(OOA)
-
目標:確定問題域,理解需求。
-
活動:
- 認定對象
- 組織對象
- 描述對象交互
- 確定對象操作
- 定義對象內部信息
-
組成:
- 頂層架構圖
- 用例與用例圖
- 領域概念模型
?面向對象需求建模:
2. 面向對象設計(OOD)
-
目標:設計解決方案,生成源代碼。
-
設計原則:
- 單一責任原則:一個類僅有一個變化原因。
- 開放-封閉原則:可擴展,不可修改。
- 里氏替換原則:子類可替換父類。
- 依賴倒置原則:抽象不依賴細節,細節依賴抽象。
- 接口分離原則:客戶不應依賴不用的方法。
-
設計模型組成:
- 包圖(軟件體系結構)
- 交互圖(用例實現)
- 類圖(完整類結構)
- 狀態圖(復雜對象行為)
- 活動圖(流程化處理)
3. 面向對象測試
測試層次
- 算法層:測試類中的方法(單元測試)。
- 類層:測試類內屬性與方法的交互(模塊測試)。
- 模板層:測試類間協作(集成測試,關注消息傳遞)。
- 系統層:組裝子系統并測試(系統測試)。
真題示例:
面向對象的分析模型主要由頂層架構圖、用例與用例圖和( )構成:設計模型則包含以( )表示的軟件體系機構圖、以交互圖表示的用例實現圖、完整精確的類圖、描述復雜對象的( )和用以描述流程化處理過程的活動圖等。
A. 數據流模型 B. 領域概念模型 C. 功能分解圖 D. 功能需求模型
A. 模型視圖控制器 B. 組件圖 C. 包圖 D. 2層、3層或N層
A. 序列圖 B. 協作圖 C. 流程圖 D. 狀態圖
-
分析模型構成:
- 領域概念模型是分析階段的核心,用于描述系統中的關鍵實體及其關系,區別于數據流模型(A)和功能分解圖(C)。
-
設計模型表示:
- 包圖(C)通過模塊化組織代碼結構,比組件圖(B)更側重邏輯分層,而MVC(A)是具體架構模式。
-
復雜對象描述:
- 狀態圖(D)適合描述對象生命周期內的狀態轉換,序列圖(A)和協作圖(B)更側重交互流程。
在面向對象設計的原則中,( )原則是指抽象不應該依賴于細節,細節應該依賴于抽象,即應針對接口編程,而不是針對實現編程。
A. 開閉 B. 里氏替換 C. 最少知識 D. 依賴倒置
依賴倒置原則強調抽象不應依賴細節,細節應依賴抽象,通過接口編程降低耦合