怎麼理解物件導向和面向過程到底的本質區別? .

來源:互聯網
上載者:User

 

http://esunxingjian.blog.163.com/blog/static/4809450820070252551576/

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

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

-----------------------------------------------

面向過程的思維方式是分析綜合。物件導向的思維方式是構造。

就是對C語言過程式解決問題時。一般是將現有的資料結構先定義出來。然後想辦法構造出演算法了。

而用C++這樣的物件導向求解時,先是將對象抽出來。構造成一個模擬的環境,然後在這個環境裡,把與最終要解決的問題間建立一個方法。

所以面向過程的程式設計有挑戰性,技巧性強。

 

而物件導向主要在於對象抽象有技術性,抽象完了後,任何人都可以做後面的工作了。 

-------------------------------------------------

物件導向和面向過程的主要區別就是資料是單獨儲存還是與操作儲存在一起。對面向過程而言,資料是獨立的。而在物件導向中,對象本身就提供了儲存資料的空間(類的資料成員),這樣就是函數的參數傳遞簡單多了,而且提供了資料封裝後,資料的訪問也變可靠了。

------------------------------------------

面向過程就是將編程當成是做一件事,要按步驟完成,每一步就是一個過程。比如作菜,先放油,接著是放菜進去炒,然後放水,最後菜就做好了。

這裡面放油,炒,放水就是三個步驟。

物件導向就是將編程當成是一個事物,對外界來說,事物是直接使用的,不用去管他內部的情況。而編程就是設定事物能夠做什麼事。其實有點像是將面向過程給放到事物內部了。仍然舉作菜為例,其實面向過程就好像你是個廚師,要自己炒菜,所以要講究步驟,而物件導向就好像你是個食客,你只要通知廚師作菜,即發一個訊息就可以了,至於廚師怎樣作菜,是不用知道的。

---------------------------------------------------

兩句話:
物件導向是將實物高度抽象化

面向過程是一種自頂向下的編程。
而物件導向是自下先建立抽象模型然後再使用模型。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.