1. 程式人生 > >25.C++:最通俗的講解,什麼是面向過程?什麼是面向物件?

25.C++:最通俗的講解,什麼是面向過程?什麼是面向物件?

網上關於這兩個的回答真的很多,但是都有一個共同特點:------------不容易懂。我今天就簡單通俗的說一下(當然,如果你要非常深入的瞭解,這篇不適合你。如果你只是為了瞭解什麼是面向過程和麵向物件,怎麼面對考試,面對面試,怎麼和別人說兩者區別,看我下面幾段話夠了。)

先來兩小段通俗解釋面向過程(Procedure Oriented 簡稱PO :像C語言):   

看名字它是注重過程的。當解決一個問題的時候,面向過程會把事情拆分成: 一個個函式和資料(用於方法的引數) 。然後按照一定的順序,執行完這些方法(每個方法看作一個個過程),等方法執行完了,事情就搞定了。

面向物件(Object Oriented簡稱OO :像C++,JAVA等語言):

   

看名字它是注重物件的。當解決一個問題的時候,面向物件會把事物抽象成物件的概念就是說這個問題裡面有哪些物件,然後給物件賦一些屬性和方法,然後讓每個物件去執行自己的方法,問題得到解決。

舉個栗子:

冰箱裡面放有髒衣服,怎麼洗乾淨?  

面向過程:                   

1 執行加洗衣粉方法; 2 執行加水方法;   3 執行洗衣服方法;  4 執行清洗方法;     5 執行烘乾方法;----------解決問題      

拆成一個個方法,是沒有物件去呼叫的。 通過一個個方法的執行解決問題。  

面向物件:

我先搞個洗衣機物件和人物件   

洗衣機: 加入一些屬性和方法  洗衣服方法  清洗方法  烘乾方法      

人:加洗衣粉方法  加水方法  

然後 人.加洗衣粉 人.加水   洗衣機.洗衣服   洗衣機.清洗   洗衣機.烘乾----------同樣解決問題   

先抽象出物件,然後用物件執行方法的方式解決問題。

然後在來一個我以前知乎看到的例子  : 

男女親密例子      man   gril   

面向過程:        make_love(man,gril)  ---------解決問題      拆成一個動作,把資料丟進去

面向物件:        man.make_love(gril)  或者 gril.make_love(man) -----解決問題    抽象出物件,物件執行動作 。

當然,你面試的時候,你不要做make_love   ....你可以說是打牌 。  

面向過程就是    打牌 (你,我,他)

面向物件就是  我.打牌(你,他) or 你.打牌(我,他)  or 他.打牌(我,你)

我覺得算是很通俗啦,希望對大家有用。