討論完了面向過程,咱們再來認識下面向對象。所謂的面向對象,就是在編程的時候儘量的去模擬真實的現實世界,按照現實世界中的邏輯去處理一個問題,分析問題中參與其中的有哪些實體,這些實體應該有什麼屬性和方法,咱們如何經過調用這些實體的屬性和方法去解決問題。編程
現實世界中,任何一個操做或者是業務邏輯的實現都須要一個實體來完成,也就是說,實體就是動做的支配者,沒有實體,就確定沒有動做發生!安全
如今讓咱們思考下,上述註冊報名的每個步驟都有哪些動詞?編程語言
提出 提供 繳 收 得到 分配 增長模塊化
有動詞就必定有實現這個動做的實體!函數
所謂的模擬現實世界,就是使計算機的編程語言在解決相關業務邏輯的方式,與真實的業務邏輯的發生保持一致!須要使每個動做的背後都一個完成這個動做的實體!學習
由於任何功能的實現都是依賴於一個具體的實體的「動做|操做|行動」,能夠看做是一個又一個的實體在發揮其各自的「能力」並在內部進行協調有序的調用過程!視頻
當採用面向對象的思想解決問題時,可分爲下面幾步:對象
採用面向對象的思想,解決上面的報名問題,應該以下:blog
第一步:分析那些動做是由哪些實體發出的遊戲
因而,在整個過程當中,一共有四個實體:
學生、機構、教師、班級!
在現實中的一個具體的實體,就是計算機編程中的一個對象!
第二步:定義這些實體,爲其增長相應的屬性和功能
屬性就是實體在現實世界中的一些特徵表現。如:
功能就是能完成的動做,在面向對象的術語中,動做就叫做方法或者函數。如:
下圖顯示了在上述實例中出現的實體以及相應的屬性和功能:
第三步:讓實體去執行相應的功能或動做
因此說,面向過程主要是針對功能,而面向對象主要是針對可以實現該功能的背後的實體。面向對象實質上就是面向實體,因此當咱們使用面向對象進行編程時,必定要創建這樣一個觀念:萬物皆對象!
在咱們將面向過程和麪向對象討論完後,會明顯的感受二者之間有着很大的區別。面向過程簡單直接,易於入門理解,模塊化程度較低。而面向對象相對於面向過程較爲複雜,不易理解,模塊化程度較高。可總結爲下面三點:
如何選擇面向對象仍是面向過程,對於一個有着豐富開發經驗的老手來講,這是個駕輕就熟的過程。而對於一個新手而言,其實從二者的對比就能夠看出,當咱們的業務邏輯比較簡單時,使用面向過程能更快的實現。可是當咱們的業務邏輯比較複雜時,爲了未來的維護和擴展,仍是面向對象更爲靠譜點!固然,當咱們被經理催着上交項目時,不要再選擇糾結了,哪一個能讓你更快的完成項目就用哪一個吧!