理解面向过程和面向对象的程序设计方法
一、結構化程序設計
1,概念:
傳統的結構化程序設計思想的核心是功能的分解。將問題分解為多個功能模塊,根據模塊功能來設計用于存儲數據的數據結構,最后編寫了過程(函數)對數據進行操作實現模塊的功能。程序由一系列處理數據的過程(函數)組成。這種設計方法的重點是面向過程的,也稱為面向過程的程序設計方法。
2,特點:
傳統的結構化程序設計思想可歸結為:
“程序=數據結構+算法”
數據結構用于量化描述要解決的問題。
算法研究如何以更快、更有效的方式來組織求解問題的具體過程,將程序定義為處理數據的一系列過程。面向過程的程序設計把數據結構和過程看作兩個實體,以過程為中心,特點是數據和程序分離,即數據和數據處理分離。
結構化程序設計的基本思想是采用自頂向下,并逐步細化的設計方法。算法實現采用順序、選擇、循環三種控制結構。
3,實例:
4,優缺點:
優點:
通過自頂向下,并逐步細化的設計方法,為處理復雜問題提供有力手段。性能比面向對象高,因為類調用時需要實例化,開銷比較大,比較消耗資源,比如單片機、嵌入式開發、Linux/Unix等一般采用面向過程開發,性能是最重要的因素
缺點:
(1)模塊間調用關系復雜,增加了模塊間的依賴性和修改調試程序的難度,難以適應大型軟件設計
(2)數據結構和過程分離,一旦數據結構發生改變,必須修改與之相關的所有模塊對應的過程或函數
二、面向對象的程序設計
1,概念
在面向對象程序設計中,重點是將要被操作的數據,而不是實現操作的過程。數據是軟件分解的基礎,而不是功能。重要的是不把數據和對數據將要執行的操作視為兩個單獨的實體。而是把它們當作一個完整的實體(對象)。外部程序和過程程無法直接訪問數據本身,從而使數據更安全。同類對象還可抽象出共性,形成類。程序有類的定義和類的使用構成,主程序中定義各個對象并規定他們之間傳遞消息的先后順序;程序中的操作都是通過向對象發送消息來實現。對象接受消息后,啟動此類對象有關的函數(方法)來完成相應的操作。
比如:每個銀行賬戶是一個對象,包括賬戶數據(賬戶號、名稱、余額等)和對數據的操作:存款、取款、轉賬(通過函數實現),所有的銀行賬戶具有相同的數據屬性和操作,可抽象出共性,形成銀行賬戶類。每個銀行帳戶都是銀行帳戶類的一個實例。在面向對象中,每個銀行帳戶都被稱為銀行帳戶類的對象。
對象與類的概念及關系:
對象間的交互:
2,特點
(1)封裝性
對象是一個封裝體,在其中封裝了該對象的屬性和操作。通過限制對屬性和操作的訪問權限,可以將屬性“隱藏”在對象內部,對外部提供某些接口(公有),在對象之外只能通過接口對對象進行操作。
(2)繼承與派生性
(3)多態性
多態性是指同一個消息被不同對象接收時,產生不同的結果,即同一接口,不同方法。分為編譯時多態(函數、運算符重載實現)和運行時多態(繼承和虛函數實現)
3,面向對象的軟件開發方法:
4,優缺點:
優點:
(1)易維護、易復用、易擴展,由于面向對象有封裝、繼承、多態性的特性,可以設計出低耦合的系統,使系統更加靈活、更加易于維護。
(2)可直接模擬現實世界。
缺點:
性能比面向過程低
總結
以上是生活随笔為你收集整理的理解面向过程和面向对象的程序设计方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 釜山行有的2部吗?讲的是啥?
- 下一篇: win7查看电脑上openCV的版本