當前位置:首頁 » 編程軟體 » 面向對象編程與面向過程編程

面向對象編程與面向過程編程

發布時間: 2022-07-06 01:45:04

A. 面向對象和面向過程的區別是什麼

面向對象和面向過程的區別是:

一,編程思想不同。

  1. 面向過程思想顧名思義其實就是面向解決問題的步驟進行編程。面向過程的編程思想總結起來就八個字——自頂向下,逐步細化!

  2. 面向對象思想就是分析參與問題的有哪些實體,這些實體應該有的屬性和方法,通過調用這些實體的屬性和方法解決問題。

二,編程過程不同。

  1. 將要實現的功能描述為一個從開始到結束按部就班的連續的步驟(過程);依次逐步完成這些步驟,如果某一步的難度較大,又可以將該步驟再次細化為若干個子步驟;面向過程,就是按照我們分析好了的步驟,按部就班的依次執行就行了。

  2. 面向對象思想就是分析參與問題的有哪些實體,這些實體應該有的屬性和方法,通過調用這些實體的屬性和方法解決問題。

    三,編程主題不同。

    1. 面向過程程序的主體是函數,一個函數就是一個封裝起來的模塊,可以實現一定的功能,各個子步驟往往就是通過各個函數來完成的,從而實現代碼的重用和模塊化編程。所以當我們用面向過程的思想去編程或解決問題時,首先一定要把詳細的實現過程弄清楚。一旦過程設計清楚,代碼的實現簡直輕而易舉。

    2. 面向對象的主體是實體,分析哪些動作是由哪些實體發出的;定義這些實體,為其增加相應的屬性和功能;讓實體去執行相應的功能或動作。面向對象實質上就是面向實體,所以當我們使用面向對象進行編程時,一定要建立這樣一個觀念:萬物皆對象!

    B. 2. 面向過程的程序設計和面向對象的程序設計分別指什麼兩者分別有什麼特點

    一、面向過程概念

    面向過程是一種以過程為中心的編程思想,面向過程編程是基於「馮·諾依曼」模型的。在這種模型中,程序與變數一起存儲,程序中包含一系列指令,並把這些指令以函數的方式組織起來。

    特性

    自頂向下、逐步求精、模塊化

    優點

    性能比面向對象高,因為類調用需要實例化,開銷比較大,比較消耗資源。

    如單片機、嵌入式開發、Linux/Unix等一般採用面向過程開發,因為在它們看來性能是最重要的因素。

    缺點

    沒有面向對象易維護、易復用、易擴展

    (按照面向過程的思想,在解決問題時,各函數之間是為了這個問題服務;而面向對象的思想,則是站在提出問題的主體的角度去解決問題,可將解決這一具體問題的步驟,抽象為解決這一類問題的方法,以後再遇到類似的問題,可以復用解決思路)

    二、面向對象概念

    面向對象是按人們認識客觀世界的系統思維方式,採用基於對象(實體)的概念建立模型,模擬客觀世界分析、設計、實現軟體的方法。通過面向對象的理念,將計算機軟體系統能與現實世界中的系統一一對應。

    特性

    封裝、繼承、多態、抽象

    優點

    易維護、易復用、易擴展(在解釋面向過程的缺點是有對面向對象的優點進行解釋)

    缺點

    性能比面向過程低(同上)

    C. 面向對象編程和面向過程有什麼不同

    面向過程與面向對象編程的區別

    面向過程就是分析出解決問題所需要的步驟,然後用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了;

    面向對象是把構成問題事務分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。

    可以拿生活中的實例來理解面向過程與面向對象,例如五子棋,面向過程的設計思路就是首先分析問題的步驟:1、開始游戲,2、黑子先走,3、繪制畫面,4、判斷輸贏,5、輪到白子,6、繪制畫面,7、判斷輸贏,8、返回步驟2,9、輸出最後結果。把上面每個步驟用不同的方法來實現。

    如果是面向對象的設計思想來解決問題。面向對象的設計則是從另外的思路來解決問題。整個五子棋可以分為1、黑白雙方,這兩方的行為是一模一樣的,2、棋盤系統,負責繪制畫面,3、規則系統,負責判定諸如犯規、輸贏等。第一類對象(玩家對象)負責接受用戶輸入,並告知第二類對象(棋盤對象)棋子布局的變化,棋盤對象接收到了棋子的變化就要負責在屏幕上面顯示出這種變化,同時利用第三類對象(規則系統)來對棋局進行判定。

    可以明顯地看出,面向對象是以功能來劃分問題,而不是步驟。同樣是繪制棋局,這樣的行為在面向過程的設計中分散在了多個步驟中,很可能出現不同的繪製版本,因為通常設計人員會考慮到實際情況進行各種各樣的簡化。而面向對象的設計中,繪圖只可能在棋盤對象中出現,從而保證了繪圖的統一。

    面向過程與面向對象的優缺點

    面向過程

    優點:性能比面向對象高,因為類調用時需要實例化,開銷比較大,比較消耗資源,比如單片機、嵌入式開發、Linux/Unix等一般採用面向過程開發,性能是最重要的因素。

    缺點:沒有面向對象易維護、易復用、易擴展

    面向對象

    優點:易維護、易復用、易擴展,由於面向對象有封裝、繼承、多態性的特性,可以設計出低耦合的系統,使系統更加靈活、更加易於維護

    缺點:性能比面向過程低

    D. 編程語言中的面向對象和面向過程有什麼不同

    面向對象:(1)對象。
    對象是人們要進行研究的任何事物,從最簡單的整數到復雜的飛機等均可看作對象,它不僅能表示具體的事物,還能表示抽象的規則、計劃或事件。
    (2)對象的狀態和行為。
    對象具有狀態,一個對象用數據值來描述它的狀態。
    對象還有操作,用於改變對象的狀態,對象及其操作就是對象的行為。
    對象實現了數據和操作的結合,使數據和操作封裝於對象的統一體中
    (3)類。
    具有相同或相似性質的對象的抽象就是類。因此,對象的抽象是類,類的具體化就是對象,也可以說類的實例是對象。
    類具有屬性,它是對象的狀態的抽象,用數據結構來描述類的屬性。
    類具有操作,它是對象的行為的抽象,用操作名和實現該操作的方法來描述。
    (4)類的結構。
    在客觀世界中有若干類,這些類之間有一定的結構關系。通常有兩種主要的結構關系,即一般--具體結構關系,整體--部分結構關系。
    ①一般——具體結構稱為分類結構,也可以說是「或」關系,或者是「is
    a」關系。
    ②整體——部分結構稱為組裝結構,它們之間的關系是一種「與」關系,或者是「has
    a」關系。
    (5)消息和方法。
    對象之間進行通信的結構叫做消息。在對象的操作中,當一個消息發送給某個對象時,消息包含接收對象去執行某種操作的信息。發送一條消息至少要包括說明接受消息的對象名、發送給該對象的消息名(即對象名、方法名)。一般還要對參數加以說明,參數可以是認識該消息的對象所知道的變數名,或者是所有對象都知道的全局變數名。
    類中操作的實現過程叫做方法,一個方法有方法名、參數、方法體
    面向對象的特徵
    (1)對象唯一性。
    每個對象都有自身唯一的標識,通過這種標識,可找到相應的對象。在對象的整個生命期中,它的標識都不改變,不同的對象不能有相同的標識。
    (2)分類性。
    分類性是指將具有一致的數據結構(屬性)和行為(操作)的對象抽象成類。一個類就是這樣一種抽象,它反映了與應用有關的重要性質,而忽略其他一些無關內容。任何類的劃分都是主觀的,但必須與具體的應用有關。
    (3)繼承性。
    繼承性是子類自動共享父類數據結構和方法的機制,這是類之間的一種關系。在定義和實現一個類的時候,可以在一個已經存在的類的基礎之上來進行,把這個已經存在的類所定義的內容作為自己的內容,並加入若干新的內容。
    繼承性是面向對象程序設計語言不同於其它語言的最重要的特點,是其他語言所沒有的。
    在類層次中,子類只繼承一個父類的數據結構和方法,則稱為單重繼承。
    在類層次中,子類繼承了多個父類的數據結構和方法,則稱為多重繼承。
    在軟體開發中,類的繼承性使所建立的軟體具有開放性、可擴充性,這是信息組織與分類的行之有效的方法,它簡化了對象、類的創建工作量,增加了代碼的可重性。
    採用繼承性,提供了類的規范的等級結構。通過類的繼承關系,使公共的特性能夠共享,提高了軟體的重用性。
    (4)多態性(多形性)
    多態性使指相同的操作或函數、過程可作用於多種類型的對象上並獲得不同的結果。不同的對象,收到同一消息可以產生不同的結果,這種現象稱為多態性。
    多態性允許每個對象以適合自身的方式去響應共同的消息。
    多態性增強了軟體的靈活性和重用性。
    三、面向對象的要素
    (1)抽象。
    抽象是指強調實體的本質、內在的屬性。在系統開發中,抽象指的是在決定如何實現對象之前的對象的意義和行為。使用抽象可以盡可能避免過早考慮一些細節。
    類實現了對象的數據(即狀態)和行為的抽象。
    (2)封裝性(信息隱藏)。
    封裝性是保證軟體部件具有優良的模塊性的基礎。
    面向對象的類是封裝良好的模塊,類定義將其說明(用戶可見的外部介面)與實現(用戶不可見的內部實現)顯式地分開,其內部實現按其具體定義的作用域提供保護。
    對象是封裝的最基本單位。封裝防止了程序相互依賴性而帶來的變動影響。面向對象的封裝比傳統語言的封裝更為清晰、更為有力。
    (3)共享性
    面向對象技術在不同級別上促進了共享
    同一類中的共享。同一類中的對象有著相同數據結構。這些對象之間是結構、行為特徵的共享關系。
    在同一應用中共享。在同一應用的類層次結構中,存在繼承關系的各相似子類中,存在數據結構和行為的繼承,使各相似子類共享共同的結構和行為。使用繼承來實現代碼的共享,這也是面向對象的主要優點之一。
    在不同應用中共享。面向對象不僅允許在同一應用中共享信息,而且為未來目標的可重用設計准備了條件。通過類庫這種機制和結構來實現不同應用中的信息共享。
    4.強調對象結構而不是程序結構這個在
    http://cpod.cnki.com.cn有詳細的比較

    E. 面向對象程序設計語言和面向過程程序設計語言的區別有哪些

    面向對象的特點是:封裝,多態,繼承。其中多態有分為重載和重寫。面向對象的編程思想更加接近現實的事物。
    有這樣幾點好處:
    1、是編程更加容易。因為面向對象更接近於現實,所以你可以從現實的東西出發,進行適當的抽象。
    2、在軟體工程上,面向對象可以使工程更加模塊化,實現更低的耦合和更高的內聚。
    3、在設計模式上(似乎只有面向對象才設計到設計模式),面向對象可以更好的實現開-閉原則。也使代碼更易閱讀。
    相對而言,面向過程的程序設計是面向對象程序設計的基礎。面向對象的程序裡面一定會有面向過程的程序片斷的!
    以上是小生的一點拙見,拿出來班門弄斧,實在不好意思。摟主的這個問題實在太大,還請各位大師給出更好的答案!

    F. 面向對象的編程和面向過程的編程的區別

    C語言是面向過程的編程,它的最重要特點是函數,通過主函數來調用一個個子函數。程序運行的順序都是程序員決定好了的。它是我學的第一種程序語言。

    C++是面向對象的編程,類是它的主要特點,程序執行過程中,先由主函數進入,定義一些類,根據需要,執行類的成員函數,過程的概念被淡化了(實際上過程還是有的,就是主函數的那些語句),類就是對象,所以我們稱之為面向對象程序設計。 不同點:1.編程模型

    所有計算機均由兩種元素組成:代碼和數據.精確的說,有些程序是圍繞著"什麼正在發生"而編寫,有些則是圍繞"誰正在受影響"而編寫的.

    第一種編程方式叫做"面向過程的模型",按這種模型編寫的程序以一系列的線性步驟(代碼)為特徵,可被理解為作用於數據的代碼.如 C 等過程化語言.

    第二種編程方式叫做"面向對象的模型",按這種模型編寫的程序圍繞著程序的數據(對象)和針對該對象而嚴格定義的介面來組織程序,它的特點是數據控制代碼的訪問.通過把控制權轉移到數據上,面向對象的模型在組織方式上有:抽象,封裝,繼承和多態的好處.

    2.抽象

    面向對象程序設計的基本要素是抽象,程序員通過抽象來管理復雜性.

    管理抽象的有效方法是使用層次式的分類特性,這種方法允許用戶根據物理含義分解一個復雜的系統,把它劃分成更容易管理的塊.例如,一個計算機系統是一個獨立的對象.而在計算機系統內部由幾個子系統組成:顯示器,鍵盤,硬碟驅動器,DVD-ROM,軟盤,音響等,這些子系統每個又由專門的部件組成.關鍵是需要使用層次抽象來管理計算機系統(或其他任何復雜系統)的復雜性.

    面向對象程序設計的本質:這些抽象的對象可以被看作具體的實體,這些實體對用來告訴我們作什麼的消息進行響應.

    /* (我的理解)

    *計算機是一個實體,我要輸入字元,顯示器顯示出來,那麼

    *計算機(對象).輸入(鍵盤屬性).顯示(顯示方法)

    *使用分層來引用,操作.而不用管計算機內部如何處理.

    *只要有計算機對象,它就能響應我的操作,而我敲鍵盤,

    *計算機對象就把這個消息傳給屏幕,屏幕顯示.

    */

    計算機對象包含了它所有的屬性,以及操作,這就是面向對象程序設計的三大原則之一:封裝.

    3.封裝

    封裝是一種把代碼和代碼所操作的數據捆綁在一起,使這兩者不受外界干擾和誤用的機制.封裝可被理解為一種用做保護的包裝器,以防止代碼和數據被包裝器外部所定義的其他代碼任意訪問.對包裝器內部代碼與數據的訪問通過一個明確定義的介面來控制.封裝代碼的好處是每個人都知道怎樣訪問代碼,進而無需考慮實現細節就能直接使用它,同時不用擔心不可預料的副作用.

    在JAVA中,最基本的封裝單元是類,一個類定義著將由一組對象所共享的行為(數據和代碼).一個類的每個對象均包含它所定義的結構與行為,這些對象就好象是一個模子鑄造出來的.所以對象也叫做類的實例.

    在定義一個類時,需要指定構成該類的代碼與數據.特別是,類所定義的對象叫做成員變數或實例變數.操作數據的代碼叫做成員方法.方法定義怎樣使用成員變數,這意味著類的行為和介面要由操作實例數據的方法來定義.

    由於類的用途是封裝復雜性,所以類的內部有隱藏實現復雜性的機制.所以JAVA中提供了私有和公有的訪問模式,類的公有介面代表外部的用戶應該知道或可以知道的每件東西.私有的方法數據只能通過該類的成員代碼來訪問.這就可以確保不會發生不希望的事情.

    4.繼承

    繼承是指一個對象從另一個對象中獲得屬性的過程.是面向對象程序設計的三大原則之二,它支持按層次分類的概念.例如,波斯貓是貓的一種,貓又是哺乳動物的一種,哺乳動物又是動物的一種.如果不使用層次的概念,每個對象需要明確定義各自的全部特徵.通過層次分類方式,一個對象只需要在它的類中定義是它成為唯一的 各個屬性,然後從父類中繼承它的通用屬性.因此,正是由於繼承機制,才使得一個對象可以成為一個通用類的一個特定實例.一個深度繼承的子類將繼承它在類層次中的每個祖先的所有屬性.

    繼承與封裝可以互相作用.如果一個給定的類封裝了某些屬性,它的任何子類將會含有同樣得屬性,另加各個子類所有得屬性.這是面向對象程序在復雜性上呈線性而非幾何增長的一個重要概念.新的子類繼承其所有祖先的所有屬性.子類和系統中的其他代碼不會產生無法預料的交互作用.

    5.多態

    多態是指一個方法只能有一個名稱,但可以有許多形態,也就是程序中可以定義多個同名的方法,用"一個介面,多個方法"來描述.可以通過方法的參數和類型引用.

    6.封裝,繼承,多態的組合使用

    在由封裝,繼承,多態所組成的環境中,程序員可以編寫出比面向過程模型更健壯,更具擴展性的程序.經過仔細設計的類層次結構是重用代碼的基礎.封裝能讓程序員不必修改公有介面的代碼即可實現程序的移植.多態能使程序員開發出簡潔,易懂,易修改的代碼.例如:汽車

    從繼承的角度看,駕駛員都依靠繼承性來駕駛不同類型(子類)的汽車,無論這輛車是轎車還是卡車,是賓士牌還是菲亞特牌,駕駛員都能找到方向盤,手剎,換檔器.經過一段時間駕駛後,都能知道手動檔與自動檔之間的差別,因為他們實際上都知道這兩者的共同超類:傳動裝置.

    從封裝的角度看,駕駛員總是看到封裝好的特性.剎車隱藏了許多復雜性,其外觀如此簡單,用腳就能操作它.發動機,手剎,輪胎大小的實現對與剎車類的定義沒有影響.

    從多態的角度看,剎車系統有正鎖反鎖之分,駕駛員只用腳踩剎車停車,同樣的介面可以用來控制若干種不同的實現(正鎖或反鎖).

    這樣各個獨立的構件才被轉換為汽車這個對象的.同樣,通過使用面向對象的設計原則,程序員可以把一個復雜程序的各個構件組合在一起,形成一個一致,健壯,可維護的程序

    G. 試述面向過程的編程語言和面向對象的編程語言的概念、特點和區別。

    在面向過程程序設計中,問題被看作一系列需要完成的任務,函數則用於完成這些任務,解決問題的焦點集中於函數。它的主要觀點是採用自頂向下、逐步求精的程序設計方法,使用三種基本控制結構構造程序,即任何程序都可由順序、選擇、循環三種基本控制結構構造。

    面向對象語言(Object-Oriented Language)是一類以對象作為基本程序結構單位的程序設計語言,指用於描述的設計是以對象為核心,而對象是程序運行時刻的基本成分。語言中提供了類、繼承等成分,有識認性、多態性、類別性和繼承性四個主要特點。

    兩者區別:

    (1)從設計思路來看。

    面向過程:程序設計的重點是分析解決問題的步驟,以及完成步驟的流程,是一種結構化自上而下的程序設計方法。

    面向對象:程序設計的重點是把構成問題的事物分解成對象,從局部著手,通過迭代的方式逐步構建出整個程序,是一種以數據為核心,以類設計為主的自下而上的程序設計方法。

    (2)從適用范圍來看。

    面向過程:由於不涉及實例化對象等操作,程序性能更高,開銷更少,因此像切入式等對資源要求較高的系統大多都採用面向過程開發。

    面向對象:由於其抽象、封裝、繼承、多態的特性,使得系統具有更好的擴展性、維護性、復用性,對於功能復雜且維護成本較高的系統採用面向對象的開發。

    (3)從代碼復用來看。

    二者都可以實現代碼復用,但是面向過程主要是函數,而面向對象主要是類。

    (7)面向對象編程與面向過程編程擴展閱讀:

    由於面向過程的編程語言對解題過程的描述採用了比較接近人們習慣的方式,因而易學、易懂、易使用,是用戶廣泛使用的一類程序設計語言。這類語言的代表有ALGOL,FORTRAN,COBOL,PL/1,PASCAL和ADA等。

    H. 面向對象的編程和面向過程的編程有什麼區別

    舉個例子,比如開車、加速、減速、剎車。

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

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

    I. 面向對象和面向過程分別是什麼

    關於面向對象和面向過程的區別?如果我們不用專業知識來看,面向對象就是面對的一個固定的人或者事物,而面向過程就是面對一件事情發生的過程,但是專業的解釋是什麼呀?下面我們就說說他們專業的區別不同是什麼。

    他們的區別從語法上來判斷,一個是類一個則是一個新的書籍類型。從思想上,不同的是面向過程是由過程、步驟、函數組成,以過程為核心。而面向對象就是以對象為中心的,首先先開發的類得到對象,然後在通過對象之間相互通信來實現的。

    J. 面向對象 什麼是面向過程 面向對象和面向過程的區別

    面向對象技術是一種以對象為基礎,以事件或消息來驅動對象執行處理的程序設計技術。它具有抽象性、封裝性、繼承性及多態性。
    面向對象與面向過程程序設計有如下不同:
    (1)面向過程程序設計方法採用函數(或過程)來描述對數據的操作,但又將函數與其操作的數據分離開來;面向對象程序設計方法將數據和對數據的操作封裝在一起,作為一個整體來處理。 函數與數據是否分離
    (2)面向過程程序設計方法以功能為中心來設計功能模塊,難於維護;而面向對象程序設計方法以數據為中心來描述系統,數據相對於功能而言具有較強的穩定性,因此更易於維護。
    (3)面向過程程序的控制流程由程序中預定順序來決定;面向對象程序的控制流程由運行時各種事件的實際發生來觸發,而不再由預定順序來決定,更符合實際需要。 預定順序;由運行時各種事件的實際發生來觸發
    (4)面向對象程序設計方法可以利用框架產品(如MFC,Microsoft Foundation Classes)進行編程。 面向對象可利用框架 面向對象和面向過程的根本差別,在於封裝之後,面向對象提供了面向過程不具備的各種特性,最主要的,就是繼承和多態。

    熱點內容
    安卓咪咕音樂怎麼錄制視頻 發布:2024-05-19 07:56:06 瀏覽:837
    如何搞出超大聲的聽聲辨位安卓版 發布:2024-05-19 07:46:21 瀏覽:926
    linux安全模式 發布:2024-05-19 07:27:25 瀏覽:175
    為什麼安卓手機安裝不了cpk 發布:2024-05-19 07:22:21 瀏覽:312
    pythonempty 發布:2024-05-19 07:15:16 瀏覽:928
    路由器虛擬伺服器搭建 發布:2024-05-19 07:15:15 瀏覽:998
    方舟編譯器何時推送 發布:2024-05-19 07:15:10 瀏覽:597
    魔獸世界自動釣魚腳本 發布:2024-05-19 06:43:07 瀏覽:495
    cbs加密 發布:2024-05-19 06:29:56 瀏覽:202
    ssis存儲過程 發布:2024-05-19 06:21:31 瀏覽:632