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