物件導向程式設計的基本特點
抽象、封裝、繼承、多型
抽象範例——時鐘
class Clock { public: void setTime(int newH, int newM, int newS); void showTime(); private: int hour, minute, second; };
抽象
對同一類物件的共同屬性和行為進行概括,形成類別。先關注問題的本質,其次是實現過程或細節。
- 資料抽象:描述某類物件的屬性或狀態(物件相互區別的物理量)。
- 程式碼抽象:描述某類物件的共同行為特徵或具備的功能。
- 抽象的實現:類別。
類別的封裝範例
class Clock { //邊界 public: //訪問權限 void setTime(int newH, int newM, int newS); //外部介面 void showTime(); //外部介面 private: //訪問權限 int hour, minute, second; }; //邊界
封裝
- 將抽象出的資料、程式碼封裝在一起,形成類別。目的在於增強安全性並簡化編程,使用者無需了解具體的實現細節,只需透過外部介面,以特定的存取權限,來使用類別的成員。
- 實現封裝:類別聲明中的
{}
。
繼承
- 在已有類別的基礎上,進行擴展形成新的類別。
- 詳見第7章。
多型
- 多型:同一名稱,不同的功能實現方式。
- 目的:達到行為標識統一,減少程式中的標識符數量。
- 實現:重載函數與虛函數——詳見第8章。