面向過程程式設計和物件導向程式設計
面向過程程式設計是一種以
過程為中心
的程式設計思想
,分析出解決問題的步驟,然後用函式把這些步驟一步一步實現
。面向過程程式設計,資料和對資料的操作是分離的。
物件導向程式設計
物件導向程式設計是
將事物物件化,通過物件通訊來解決問題
。物件導向程式設計,資料和對資料的操作是繫結在一起的。
物件導向的三大基本特徵:
封裝:把客觀事物封裝成抽象的類,隱藏屬性和方法的實現細節,僅對外公開介面。
繼承:子類可以使用父類的所有功能,並且對這些功能進行擴充套件。繼承的過程,就是從一般到特殊的過程。
多型:介面的多種不同的實現方式即為多型。同一操作作用於不同的物件,產生不同的執行結果。在執行時,通過指向基類的指標或引用來呼叫派生類中的虛函式來實現多型。
封裝可以隱藏實現細節,使得**模組化;繼承可以擴充套件已存在的類。它們的目的都是為了
---**重用。
而多型則是為了實現另乙個目的
---介面重用。
物件導向的**更加支援重用,能降低軟體開發和維護的成本,提高軟體的質量。
掌握物件導向的困難之處在於思路的轉換。我們通常習慣於考慮解決問題的方法,而不是考慮將問題抽象成物件再去解決它。
從兩個簡單的例子來理解兩者的區別
第乙個簡單的例子:編寫乙個駕駛汽車的方法
面向過程的程式設計:
編寫乙個方法,
void drivecar();
物件導向的程式設計:
將一輛汽車看成乙個物件,將所有汽車物件的共性抽取出來,設計乙個類
car,類中有乙個方法
void drive()
,用car
這個類例項化乙個具體的物件
car,呼叫:
car.drive()。
第二個簡單的例子:求乙個長方形的周長和面積。
面向過程的程式設計方式:
1、確定長方形周長和面積的演算法。
2、編寫兩個方法(函式)分別計算長方形的周長和面積。
3、求周長的方法(函式)和求面積的方法(函式)需要兩個引數,分別是長方形的長和寬。
物件導向的程式設計方式:
1、乙個長方形可以看成乙個長方形物件。
2、乙個長方形物件有兩個狀態(長和寬)和兩個行為(求周長和求面積)。
3、將所有長方形的共性抽取出來,設計乙個長方形類。
4、通過長方形物件的行為,就可以求出某個具體的長方形物件的周長和面積。
面向過程程式設計和物件導向程式設計
面向過程程式設計和物件導向程式設計 一 面向過程程式設計 面向過程程式設計將程式分成了 資料 和 處理函式 兩部分,程式以 處理函式 為核心,如果要執行什麼操作,就將 資料 傳給相應的 處理函式 返回我們需要的結果 面向過程的思路很好掌握,上手容易,但它存在三方面的問題 1 資料和處理函式沒有直接的...
《面向過程和物件導向的程式設計》
關於寫 面向過程和物件導向的程式設計 這個話題我很矛盾,我擔心許多程式設計師對此話題不太感興趣,可能他們不太懂得面向過程和物件導向程式設計的巨大差距,以及對程式設計水平的影響。在我整個程式設計生涯中,有無數的轉變和變化讓我銘記在心。從彙編到 c語言,從檔案系統到資料庫,從 c語言倒 dbase,從c...
程式設計思想 物件導向和面向過程
何謂物件導向?何謂面向過程?對於這程式設計界的兩大思想,一直貫穿在我們學習和工作當中。我們知道面向過程和物件導向,但要讓我們講出來個所以然,又感覺是不知從何說起,最後可能也只會說出一句就是那樣啦,你知道啦。而這種茫然,其實就是對這兩大程式設計思想的迷糊之處。本文通過學生到校報道註冊的例項,闡述了面向...