https://zh.wikipedia.org/zh-tw/面向对象程序设计
類與物件[編輯]
支援物件導向程式語言通常利用繼承其他類達到代碼重用和可延伸性的特性。而類有兩個主要的概念:
其中類別(Class)定義了一件事物的抽象特點。類別的定義包含了資料的形式以及對資料的操作。舉例來說,「犬」這個類別會包含犬的一切基礎特徵,即所有「犬」都共有的特徵或行為,例如它的品種、毛皮顏色和吠叫的能力。類別可以為程式提供模版和結構。一個類別的方法和屬性被稱為「成員」。 我們來看一段虛擬碼:
類別犬
開始
公有成員:
吠():
毛色:
私有成員:
品種:
結束
假設我們已經在上面定義了犬這個類別,我們就可以用這個類別來定義物件:
定義大黃是犬
大黃.毛色 : 黃
大黃.吠()
我們無法讓犬這個類別去吠,但是我們可以讓物件「大黃」去吠,正如狗可以吠,但沒有具體的狗就無法吠。
具備封裝性(Encapsulation)的物件導向程式設計隱藏了某一方法的具體執行步驟,取而代之的是通過訊息傳遞機制傳送訊息給它。封裝是通過限制只有特定類別的物件可以存取這一特定類別的成員,而它們通常利用介面實作訊息的傳入傳出。舉個例子,介面能確保幼犬這一特徵只能被賦予犬這一類別。通常來說,成員會依它們的存取權限被分為3種:公有成員、私有成員以及保護成員。