https://zh.wikipedia.org/zh-tw/面向对象程序设计

物件導向程式設計(英語:Object-oriented programming,縮寫:OOP)是種具有物件概念的程式設計典範,同時也是一種程式開發的抽象方針。它可能包含資料特性程式碼方法。物件則指的是類別(class)的實例。它將物件作為程式的基本單元,將程式和資料封裝其中,以提高軟體的重用性、靈活性和擴充性,物件裡的程式可以訪問及經常修改物件相關連的資料。在物件導向程式程式設計裡,電腦程式會被設計成彼此相關的物件[1][2]

類與物件[編輯]

支援物件導向程式語言通常利用繼承其他類達到代碼重用和可延伸性的特性。而類有兩個主要的概念:

其中類別(Class)定義了一件事物的抽象特點。類別的定義包含了資料的形式以及對資料的操作。舉例來說,「犬」這個類別會包含犬的一切基礎特徵,即所有「犬」都共有的特徵或行為,例如它的品種、毛皮顏色和吠叫的能力。類別可以為程式提供模版和結構。一個類別的方法和屬性被稱為「成員」。 我們來看一段虛擬碼

類別犬
開始
  公有成員:
    吠():
    毛色:
  私有成員:
    品種:
結束

假設我們已經在上面定義了犬這個類別,我們就可以用這個類別來定義物件:

定義大黃是犬
大黃.毛色 : 黃
大黃.吠()

我們無法讓犬這個類別去吠,但是我們可以讓物件「大黃」去吠,正如狗可以吠,但沒有具體的狗就無法吠。

封裝性[編輯]

具備封裝性(Encapsulation)的物件導向程式設計隱藏了某一方法的具體執行步驟,取而代之的是通過訊息傳遞機制傳送訊息給它。封裝是通過限制只有特定類別的物件可以存取這一特定類別的成員,而它們通常利用介面實作訊息的傳入傳出。舉個例子,介面能確保幼犬這一特徵只能被賦予犬這一類別。通常來說,成員會依它們的存取權限被分為3種:公有成員私有成員以及保護成員

繼承[編輯]