面向過程編程和物件導向編程的區別__UML

來源:互聯網
上載者:User
面向過程編程

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

物件導向的三大基本特徵:

封裝:把客觀事物封裝成抽象的類,隱藏屬性和方法的實現細節,僅對外公開介面。

繼承:子類可以使用父類的所有功能,並且對這些功能進行擴充。繼承的過程,就是從一般到特殊的過程。

多態:介面的多種不同的實現方式即為多態。同一操作作用於不同的對象,產生不同的執行結果。在運行時,通過指向基類的指標或引用來調用衍生類別中的虛函數來實現多態。

封裝可以隱藏實現細節,使得代碼模組化;繼承可以擴充已存在的類。它們的目的都是為了---代碼重用。

而多態則是為了實現另一個目的---介面重用。

物件導向的代碼更加支援重用,能降低軟體開發和維護的成本,提高軟體的品質。


掌握物件導向的困難之處在于思路的轉換。我們通常習慣於考慮解決問題的方法,而不是考慮將問題抽象成對象再去解決它。

從兩個簡單的例子來理解兩者的區別


第一個簡單的例子:編寫一個駕駛汽車的方法

面向過程的程式設計:
編寫一個方法,void drivecar();
物件導向的程式設計:
將一輛汽車看成一個對象,將所有汽車對象的共性抽取出來,設計一個類Car,類中有一個方法void drive(),用Car這個類執行個體化一個具體的對象car,調用:car.drive()。


第二個簡單的例子:求一個長方形的周長和面積。
面向過程的程式設計方式:
1、確定長方形周長和面積的演算法。
2、編寫兩個方法(函數)分別計算長方形的周長和面積。
3、求周長的方法(函數)和求面積的方法(函數)需要兩個參數,分別是長方形的長和寬。

物件導向的程式設計方式:
1、一個長方形可以看成一個長方形對象。
2、一個長方形對象有兩個狀態(長和寬)和兩個行為(求周長和求面積)。
3、將所有長方形的共性抽取出來,設計一個長方形類。
4、通過長方形對象的行為,就可以求出某個具體的長方形對象的周長和面積。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.