Java面向對象和麪向過程的區別

面向對象中的對象不是指女朋友,它是一種編程術語。面向對象是當今軟件開發主流方法之一,現在面向對象的概念已經超越了程序的設計和軟件的開發,擴展到很寬的範圍,如應用結構,數據庫系統、交互界面、應用平臺、CAD技術,人工智能等領域。

Java面向對象和麪向過程的區別
Java面向對象和麪向過程的區別

提到面向對象就不得不提面向過程,它們之間千絲萬縷的關係,也讓很多Java初學者頭疼不已,更難透徹的理解二者之間的差異,下面我們就用生活中簡單的例子來幫助大家理解面向過程和麪向對象.

現在有兩個蛋糕師傅:一個叫“面向過程”師傅 一個叫“面向對象”師傅 現在他們都要做一個多層生日蛋糕

(1)客人a:我要做一個多層生日蛋糕,用進口奶油,多放一些水果,一個小時後我來取~

於是“面向過程”師傅就開始按照客人的要求直接做出完整的蛋糕,對客人提出的進口奶油,和水果並不做準備,而是需要的時候直接單獨去拿!

(2)客人b找“面向對象”師傅做蛋糕,提出同樣的需求

客人b:我要做一個生日蛋糕,用進口奶油,多放一些水果,一個小時後我來取~

  “面向對象”師傅:針對客人提出的要求進行分析,(確定生日蛋糕是給老人還是小孩或者是朋友,水果有哪些喜好,幾個人吃蛋糕,做多大尺寸的`)並將分析結果製成一張圖或者列舉店裏的蛋糕模型和客人確認,然後將一切準備工作全部處理完之後,分層開始製作,最後將各個層蛋糕按照大小順序羅列在一起。

通過以上兩個師傅的蛋糕做法可以發現:

  “面向過程”師傅“重在完成一個步驟,根據事件的發展再一一調用函數,強調做蛋糕中的做;”面向對象”師傅 不是爲了完成一個步驟,而是爲了描敘某個事物在整個解決問題的步驟中的行爲,強調的是怎麼做蛋糕。

在理解時要知道面向對象和麪向過程不是對立的,而是有聯繫的,就像做蛋糕師傅,面向對象師傅想做出蛋糕,必須要有面向過程師傅這個步驟,也就是說面向對象包含面向過程。因爲對象的方法,最終是要靠面向過程來實現。

實際程序的設計時“面向對象”師傅要比“面向過程”師傅更能適應客戶的變化,一旦客戶需求有變化的之後,“面向過程”師傅基本上就要推倒重做,而“面向對象”師傅卻能夠適應需求的變化。