物件導向(POP)和面向過程(OOP),popoop
我對物件導向和面向過程的理解
- 面向過程:(procedure oriented programming 即:POP)
面向過程就是分析出解決問題所需要的步驟,然後用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了。
在早期電腦配置低、記憶體小為了節省記憶體空間,大都採用面向過程編程(以時間換空間)。
物件導向是一種編程範式,滿足物件導向編程的語言,一般會提供類、封裝、繼承等文法和概念來輔助我們進行物件導向編程。
所謂的物件導向就是將我們的程式模組化,對象化,把具體事物的特性屬性和通過這些屬性來實現一些動作的具體方法放到一個類裡面。
2. 物件導向的三大特徵:繼承,封裝,多態
(1)繼承
繼承:A類繼承B類,我們通常稱繼承的A類為子類,被繼承的B類為父類;
理解:子類與父類而是一種特殊化與一般化的關係,子類是父類更加詳細的分類。
實現繼承後子類自動擁有了父類的屬性和方法,子類可以寫自己特有的屬性和方法,目的是實現功能的擴充,子類也可以複寫父類的方法即方法的重寫。
(2)封裝
- 封裝是指將資料與具體操作的實現代碼放在某個對象內部,使這些代碼的實現細節不被外界發現,外界只能通過介面使用該對象,
而不能通過任何形式修改對象內部實現,正是由於封裝機制,程式在使用某一對象時不需要關心該對象的資料結構細節及實現操作的方法。
也就是說,使用者無需知道對象內部方法的實現細節,但可以根據對象提供的外部介面(對象名和參數)訪問該對象。
使用封裝能隱藏對象實現細節,使代碼更易維護,同時因為不能直接調用、修改對象內部的私人資訊,在一定程度上保證了系統安全性。
1.實現了專業的分工。將能實現某一特定功能的代碼封裝成一個獨立的實體後,各程式員可以在需要的時候調用,從而實現了專業的分工。
2.隱藏資訊,實現細節。通過控制存取權限可以將可以將不想讓用戶端程式員看到的資訊隱藏起來,如某客戶的銀行的密碼需要保密,只能對該客戶開發許可權。
(3)多態
多態是物件導向編程中另一個突出的特徵,所謂的多態是指在繼承體系中,所有衍生類別都從基類繼承介面,但由於每個衍生類別都是獨立的實體,因此在接收同一訊息的時候,可能會產生不同的響應。多態的作用作為隱藏代碼實現細節,使得代碼能夠模組化;擴充代碼模組,實現介面重用。簡單來說:一種行為產生多種效果。
總的來說:封裝可以隱藏實現細節同時包含私人成員,使得代碼模組化並增加安全指數;繼承則可以擴充已存在的模組,目的是為了代碼重用;多態則是為了保證:類在繼承和派生的時候,保證家譜中任何類的執行個體被正確調用,實現了介面重用。