物件導向程式設計與面向過程程式設計的區別與聯絡

2022-04-11 15:47:53 字數 1085 閱讀 3112

linuxc程式設計的學習已經告一段落,這段開始學c++。c++是物件導向程式設計,c語言是面向過程程式設計。因此學習c++的第一件事就是要弄明白什麼是面向過程程式設計,什麼是物件導向程式設計。

之前學習的c語言是面向過程程式設計,回想一下c語言程式設計的過程。主函式,定義變數,呼叫函式然後實現。面向過程程式設計是一種非常具體,要面面俱到的的程式設計方式。而物件導向是以物件為單位來進行程式設計,比較像正常人的思維。

下面我們舉個例子,比如開車、加速、減速、剎車。

用面向過程來說就是你要先有乙個車,然後這四個分別是4件事,也就是說你要寫4個函式,分別是開車、加速、減速、剎車,這分別是四個事件,如果使用的話要呼叫4個函式。

但是對於物件導向的程式設計來說,我們關心的是車這個類,而不是開車、加速、減速和剎車這四個過程。這4個過程是車這個類的一部分,只是其中的一種行為,而且對於行為的順序沒有強制要求。

兩種思想的對比:

面向過程是具體的東西,而且面向過程是物件導向的基礎。物件導向可以說是面向過程的抽象,比如汽車有開車,加減速和剎車,關於汽車的操作有好多,每乙個都需要乙個具體的過程來實現,把這些過程抽象的總結起來就可以形成乙個類,這個類包括的汽車所有的東西,所有的操作。

總結來說就是,面向過程是一種基礎的方法,它考慮的是實際的實現,一般情況下,面向過程是自頂向下逐步求精,其最重要的是模組化的思想方法。因此在模組化程式設計的時候才會有「低耦合,高內聚」的思想來提高效率。物件導向的方法主要是把事物給物件化,包括其屬性和行為。當程式較小的時候,面向過程就會體現出一種優勢,其程式流程十分清楚。但是,物件導向程式設計更貼近實際生活的思想。

面向過程和物件導向的本質理解

面向過程是具體化的,流程化的。解決乙個問題,需要一步一步分析需要怎樣,然後需要怎樣,一步一步實現的。物件導向是模型化的,抽象出乙個類,這是乙個封閉的環境,在這個環境中有資料有解決問題的方法,你如果需要什麼功能直接使用就可以了,至於是怎麼實現的,你不用知道。

從**層面來看,物件導向和面向過程的主要區別就是資料是單獨儲存還是與操作儲存在一起。在類的裡邊,實現具體的功能還是需要流程化、具體化的**去實現的,在類裡還是需要具體的演算法來實現的。總結來說物件導向的底層還是面向過程,面向過程抽象成類,然後封裝,方便使用就是物件導向。

物件導向程式設計與面向過程程式設計

面向過程程式設計 面向過程程式設計是一種以過程為中心的程式設計思想,分析出解決問題的步驟,然後用函式把這些步驟一步一步實現。面向過程程式設計,資料和對資料的操作是分離的。物件導向程式設計 物件導向程式設計是將事物物件化,通過物件通訊來解決問題。物件導向程式設計,資料和對資料的操作是繫結在一起的。物件...

面向過程程式設計與物件導向程式設計

舉個例子,比如開車 加速 減速 剎車。用面向過程來說就是你要先有乙個車,然後這四個分別是4件事,也就是說你要寫4個函式,分別是開車 加速 減速 剎車,這分別是四個事件,如果使用的話要呼叫4個函式。但是對於物件導向的程式設計來說,我們關心的是車這個類,而不是開車 加速 減速和剎車這四個過程。這4個過程...

面向過程程式設計與物件導向程式設計

面向過程 核心是過程二字,過程指的是解決問題的步驟,設計一條流水線,機械式的思維方式。優點 複雜的問題流程化,進而簡單化。程式設計難度低。缺點 可擴充套件性差 應用場景 功能一旦實現,擴充套件性很少的場景,比如系統監控 自動部署。import json import redef interactiv...