非物件導向更關注功能,它將乙個大的問題細分成很多小功能,每個功能就表現為乙個函式,通過函式之間的相互連線,完成問題的求解。使用這種功能分解方式程式設計會出現乙個問題:當需求發生改變時,必須要修改某個函式或模組,模組的變化同時會引起其他依賴該模組的程式的正常執行,因此帶來了程式不易維護和擴充套件的缺點。
物件導向程式設計用物件封裝解決了上面的問題。利用物件導向的基本特徵,並靈活使用設計模式,能給程式帶來良好的可復用性、可擴充套件性以及可維護性。
物件導向有4個主要特徵,它們是區分非物件導向程式設計的主要標誌。
抽象:抽象包括資料抽象和過程抽象。面向過程式程式設計,不是把過程與資料看成乙個整體,只是把客體的行為抽取出來,如果屬性有變更,需要更改很多地方。而物件導向程式設計將資料與過程做個乙個整體,並形成物件。每個物件都有自己有自己的狀態,並能夠根據自身當前狀態完成相應的功能。
封裝:非物件導向程式設計將資料與功能函式分離,在c語言中資料採用結構體方式表示,其成員變數都預設public的。物件導向採用類作為封裝,其中包含了屬性和方法,且都可以用public,protected,friendly,private四種不同的訪問許可權修飾,達到了資料隱藏的效果,提高了軟體的可靠性和可維護性。
繼承:在非物件導向程式設計中沒有繼承的概念。物件導向中的繼承增加了軟體的可復用性和可擴充套件性。
多型:多型依託於繼承。把通用功能放在較高層次,具體實現放在較低層次,低層次的物件能對通用訊息作出個性的響應。增強程式的可擴充套件性和可維護性。
物件導向VS面向過程
面向過程一種以事件為中心的程式設計思想 以功能 行為 為導向,按模組化的設計,就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了。物件導向一種以事物為中心的程式設計思想 以資料 屬性 為導向,將具有相同乙個或者多個屬性的物體抽象為 類 將他們包裝起來...
物件導向 VS 面向過程
面向過程 面向過程是一種以過程為中心的程式設計思想。通過分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了。面向過程程式設計思想的核心 功能分解,自頂向下,逐層細化 程式 資料結構 演算法 面向過程程式語言存在的主要缺點是不符合人的思維習慣 而是要用計算...
物件導向VS面向過程(OOP VS OP)
1.綜述 我們將從哲學和語言學的角度講述這個問題。物件導向或是面向過程,實際上都 於我們如何用抽象的語言來描述周邊的這個世界,目的是抽象出來的結果可以更加有利於或方便計算機的處理執行。而當我們觀察周邊這個世界,可以發現整個世界可以分為兩部分 有點哲學的感覺 1,物體 2,物體上的行為,如,物體 車 ...