面向過程程式設計
面向過程程式設計是一種以過程為中心的程式設計思想,分析出解決問題的步驟,然後用函式把這些步驟一步一步實現。面向過程程式設計,資料和對資料的操作是分離的。
物件導向程式設計
物件導向程式設計是將事物物件化,通過物件通訊來解決問題。物件導向程式設計,資料和對資料的操作是繫結在一起的。
物件導向的三大基本特徵:
封裝:把客觀事物封裝成抽象的類,隱藏屬性和方法的實現細節,僅對外公開介面。
繼承:子類可以使用父類的所有功能,並且對這些功能進行擴充套件。繼承的過程,就是從一般到特殊的過程。
多型:介面的多種不同的實現方式即為多型。同一操作作用於不同的物件,產生不同的執行結果。在執行時,通過指向基類的指標或引用來呼叫派生類中的虛函式來實現多型。
封裝可以隱藏實現細節,使得**模組化;繼承可以擴充套件已存在的類。它們的目的都是為了—**重用。
而多型則是為了實現另乙個目的—介面重用。
物件導向的**更加支援重用,能降低軟體開發和維護的成本,提高軟體的質量。
掌握物件導向的困難之處在於思路的轉換。我們通常習慣於考慮解決問題的方法,而不是考慮將問題抽象成物件再去解決它。
從兩個簡單的例子來理解兩者的區別
第乙個簡單的例子:編寫乙個駕駛汽車的方法
面向過程的程式設計:
編寫乙個方法,void drivecar();
物件導向的程式設計:
將一輛汽車看成乙個物件,將所有汽車物件的共性抽取出來,設計乙個類car,類中有乙個方法void drive(),用car這個類例項化乙個具體的物件car,呼叫:car.drive()。
第二個簡單的例子:求乙個長方形的周長和面積。
面向過程的程式設計方式:
1、確定長方形周長和面積的演算法。
2、編寫兩個方法(函式)分別計算長方形的周長和面積。
3、求周長的方法(函式)和求面積的方法(函式)需要兩個引數,分別是長方形的長和寬。
面向過程程式設計與物件導向程式設計
舉個例子,比如開車 加速 減速 剎車。用面向過程來說就是你要先有乙個車,然後這四個分別是4件事,也就是說你要寫4個函式,分別是開車 加速 減速 剎車,這分別是四個事件,如果使用的話要呼叫4個函式。但是對於物件導向的程式設計來說,我們關心的是車這個類,而不是開車 加速 減速和剎車這四個過程。這4個過程...
面向過程程式設計與物件導向程式設計
面向過程 核心是過程二字,過程指的是解決問題的步驟,設計一條流水線,機械式的思維方式。優點 複雜的問題流程化,進而簡單化。程式設計難度低。缺點 可擴充套件性差 應用場景 功能一旦實現,擴充套件性很少的場景,比如系統監控 自動部署。import json import redef interactiv...
面向過程與物件導向 程式設計
面向過程的程式 按照思路是下棋的流程進行程式設計,也就是我們通常習慣使用的自低向上,逐層精確的程式設計思想。這種程式設計的主導思想是在設計時就把實現的細節考慮好了,從而在低層就實現了程式滿足應用軟體要求的目的。物件導向的精髓 在於考慮問題的思路是從人的一般思維習慣出發來考慮的,這樣就改變並打破了程式...