當前位置:編程學習大全網 - 編程語言 - 解釋“面向對象”和“面向過程”的區別

解釋“面向對象”和“面向過程”的區別

1.面向過程(結構化編程)

采用自頂向下,分而治之的方法,將整個程序分成若幹個可以獨立編程的子進程模塊,每個子模塊完成指定的子任務,主進程通過調用每個子進程完成所有的處理工作。

2.面向對象編程。

面向對象編程方法強調以現實世界中的對象為中心直接思考和理解問題,並根據其本質特征抽象成類。使用數據抽象和數據隱藏,類之間相互作用,形成壹個大的面向對象的基礎。

3.面向對象的相關概念

1)類:壹組具有相似屬性和行為的對象稱為類。可見,有了類的概念,具有* * *相同特征的事物就可以統壹描述;

2)對象:壹個類的實例,每個對象同時具有屬性和方法的特征。對象的屬性描述了對象的狀態和特征,對象的方法解釋了對象的行為和功能,對象的屬性值只能由對象的方法讀取和修改。這兩者壹起構成了對對象的完整描述。;

3)封裝:封裝將壹個對象的屬性和方法視為壹個不可分割的整體,從而使對象能夠完整地描述和對應壹個具體的事物;

4)繼承:在面向對象編程中,允許在已有類的基礎上,通過添加新的特性來派生新的類,這就是所謂的繼承。它原來的類叫基類,新建立的類叫派生類。

5)消息:當壹個對象需要另壹個對象提供服務時,向對方發送服務請求,收到請求的對象會響應這個請求,完成指定的服務。這種對對象的服務請求稱為消息。所謂消息,就是調用壹個對象提供的方法;

6)多態性:多態性是面向對象的重要特征。多態有兩種,靜態和動態。在繼承派生的壹系列類中,可能會有壹些名稱相同但實現過程和功能不同的方法。

當程序的其他部分發送相同的消息時,可以根據接收消息對象的不同,自動執行類中相應的方法。它的優點是用戶可以在不知道對象所屬類的情況下執行多態行為,從而給程序設計帶來更大的便利。

4.面向對象編程的特點

1)OOP是以“對象”或“數據”為中心的。因為對象自然體現了應用領域的模塊化,所以相對穩定,可以作為組件形成更復雜的應用。而且由於對象壹般封裝了某個實際需求的各種組件,所以壹個對象的變化對整個系統的影響很小。

2)引入了“類”的概念。類和類被組織在壹個層次結構中。屬於壹個類的對象擁有層次結構中該類上層所有類所描述的所有屬性,這種機制在OOP中稱為繼承。

3)3)OOP方法的模塊化和繼承性,保證了新的應用程序設計可以在原對象的數據類型和功能的基礎上,通過重用、擴展和細化來進行,而不必從頭開始或復制原代碼,從而大大減少了重寫新代碼的工作量,同時降低了程序設計過程中出錯的可能性,達到事半功倍的效果。

5.設計壹個好的OOP系統的特征。

1)可維護性:在軟件投入使用的過程中,隨著運行時間的延長,後期可能無法滿足客戶的需求,需要對軟件進行修改。後期維護人員可能壹開始沒有參與軟件的開發,不熟悉軟件的結構。那麽OOP系統可以保證後期維護方便簡單;

2)擴展性:當我們在軟件運行的後期需要給軟件增加壹些功能時,我們可以很容易地增加壹些功能,而不需要對軟件架構進行大的改動;

3)可重用性:我們在這個項目中使用的壹些代碼和類可以很容易地拿到另壹個項目中使用;

4)健壯性:軟件要比較穩定,出錯的概率比較小。

比較兩者

1)傳統的結構化編程方法以進程為中心構造應用程序,數據和處理數據的進程代碼是分離的、獨立的實體,因此設計出的程序可重用代碼較少,在代碼量增加時很難保持數據和代碼的壹致性;

2)在面向對象的編程方法中,對象的封裝和繼承使得代碼重用成為可能,大大降低了程序出錯的可能性;

3)面向對象方法吸收了結構化編程方法的優點,引入了新的概念和機制,建立了比傳統方法更高的抽象層次。面向對象也包括面向過程。比如我們在壹個類中設計方法的時候,會采用壹些面向過程的原則和思想。

7.壹些誤解

1)面向對象比面向過程好:面向對象和面向過程沒有絕對的區別,只有適用與否;

2)C++ = c++類,c++的編程思想有了很大的改變。如果C只是用合適的類封裝,那就不是C++的面向對象原則;

3)使用面向對象技術肯定能構造出更好的軟件:有人認為面向對象軟件壹定是優秀的,但如果誤用了面向對象或者沒有很好地掌握面向對象編程的思想,這樣的軟件只會比過程編寫的軟件更差;

4)學習C++就是學習面向對象技術。我們之前說過,學習C++只是學習面向對象的第壹步,面向對象的壹些原理、原則和方法還需要後面去學習。需要自己實踐,加深對面向對象的理解。

  • 上一篇:C++的題。幫忙做哈嘛。寫得壹般就行。謝謝了!!!!!!!!!
  • 下一篇:初中信息技術教案三篇
  • copyright 2024編程學習大全網