初考-統計資料處理大意108 年第 43 題單選題
在物件導向程式語言中,變數及使用變數的函數打包在一起成為一個物件,下列何者最能描述此種特性?
A合成(composition)
B封裝(encapsulation)正確答案
C多型(polymorphism)
D委派(delegation)
B正確答案
封裝 (encapsulation) 是物件導向核心特性:把資料(變數)與操作資料的方法(函數)包成一個物件,對外隱藏細節。
為什麼答案是 B
封裝 (encapsulation) 正是將屬性(變數)與方法(函數)包裝在一個物件中,並透過存取修飾詞(private/public)隱藏內部實作細節,只對外開放必要介面。完全符合題意。
載入中…
完整詳解
Pro · 無限重點 封裝 (encapsulation) 是物件導向核心特性:把資料(變數)與操作資料的方法(函數)包成一個物件,對外隱藏細節。
看到「變數+函數打包」→ 直接選封裝。這是 OOP 三大特性 (封裝/繼承/多型) 最基本題型。
逐選項分析
A✕
合成是指一個物件「包含」其他物件作為其組成部分(has-a 關係),例如汽車物件包含引擎物件。強調物件間的組合關係,不是變數與函數的打包。
B✓ 正確
封裝 (encapsulation) 正是將屬性(變數)與方法(函數)包裝在一個物件中,並透過存取修飾詞(private/public)隱藏內部實作細節,只對外開放必要介面。完全符合題意。
C✕ 陷阱
多型指「同一介面、不同實作」,例如同名方法在不同子類別有不同行為(如覆寫 overriding)。考生常把 OOP 特性混在一起,但多型強調「行為變化」,不是「打包」。
D✕
委派是指一個物件將任務交給另一個物件處理的設計模式,強調責任轉移,與「變數函數打包」無關。
物件導向 (OOP) 三大核心特性
| 特性 | 英文 | 白話解釋 | 關鍵字 |
|---|
| 封裝 | Encapsulation | 變數+函數包成物件,隱藏細節 | 打包、隱藏 |
| 繼承 | Inheritance | 子類別繼承父類別屬性方法 | 父子、重用 |
| 多型 | Polymorphism | 同名方法不同實作 | 同名異行 |
本題最容易誤選 A 合成或 C 多型。關鍵要抓住題幹「變數及函數打包在一起」這個動作 → 就是封裝。合成強調「物件內含物件」,多型強調「同名異行」,委派強調「責任轉移」,都不是打包動作。