回覆列表
  • 1 # 使用者3408330136582

    我自己對於這個的理解是:

    面向物件,就是使用物件化的方式面向過程,就是使用過程化的方式

    這樣說似乎有點廢話

    舉例比較好理解一些,下面就拿 C 和 Java 最基本的方法呼叫過程來說吧

    C 是一門經典的面向過程性質的語言Java 是一門具有完善的面向物件特性的語言

    在 C 裡面寫程式的功能,不管怎麼寫,你都得寫在一個函數里面,這就是所謂的封裝,C 語言把實現的功能,操作,封裝在函數里面,而那一個個函式,就這麼擺在那裡了,沒有其他東西封裝它,寫完了,要用的時候,就在主函式或者其他函式呼叫它,如下:

    使用 Java 等面嚮物件語言寫東西時,功能、行為之類的東西同樣封裝在一個函式中,但方法還被封裝在一個類中,你要使用那些函式時,必須例項化該類的一個物件或透過靜態呼叫,才能呼叫方法,具體例子如下:

    透過上面兩個例子,可以看出一些區別了,不單單是語法的區別!

    至少看完例子,你對兩種語言的最基本的方法呼叫過程有個大概瞭解了:

    C:功能 ---> 函式 ---> 被函式/主函式呼叫Java:功能 ---> 函式 ---> 類 ---> 被該類的一個例項物件呼叫

    所以就從這麼一個區別也可以看出

    面向過程,關注功能實現的過程,用 C語言 來看就是關注到底如何那一個個函式,關注它們怎麼實現的,以程式碼中一個個函式為中心,每次用面向過程的思想去思考解決問題時:分析出解決問題所需要的步驟然後用函式把這些步驟一步一步描述實現面向物件,關注功能的複用,模組,拓展等,用 Java語言 來看就是關注那些函式如何更好地複用,如何更好地拓展,如何劃分成條理更清楚的模組?這些都是基於類,基於物件來實現的,在面向物件中,要使用方法(內部呼叫除外),必須要透過類或者該類的物件來呼叫,所以有句話說,萬物皆物件,因為不管什麼東西你都可以把它用類描述出來,再透過類例項化一個該類的物件去使用,每次用面向物件的思想去思考解決問題時:分析解決問題需要的工具然後用類把這些工具一步一步描述實現再用方法(函式)把工具的作用一步一步描述實現

    可以回顧上面那兩份程式碼體會一下

    再舉個例子,你想要跑步,在不同的地方,你可能會想去近點的,那麼用兩個思想分別去思考解決這個問題時有:面向過程:思考問題解決步驟去操場去體育館去公園用函式描述解決步驟void 去操場()void 去體育館()void 去公園()面向物件步驟思考解決問題的工具(類)跑步機用類描述工具class 跑步機用方法(函式)描述工具的作用void 提供跑步()

    從中可以看出:

    面向過程,你是面向解決問題的過程來思考的,在上面跑步中,關注的是到底如何選擇,如何走哪條路最近,這裡是你自己找到地方跑步的,解決跑步問題的是你自己面向物件,你是面向解決問題的物件來思考的,在上面跑步中,關注的是有哪些工具能解決跑步問題,工具是如何實現的,這裡是跑步機讓你能跑步的,解決跑步問題的是跑步機

    還是推薦好好看看上面那兩份程式碼,可以用類似的形式描述一下上面那個跑步的例子,應該能更好地理解

  • 中秋節和大豐收的關聯?
  • “四腳朝天”怎麼造句?