1. 程式人生 > >從面相對象的學習過程中得出的程序開發者需要具備的類比學習能力

從面相對象的學習過程中得出的程序開發者需要具備的類比學習能力

c語言 問題 學習方法 簡單的 邏輯 基本類型 不同 使用 素數

  什麽是對象?什麽是類?哪些是屬性?屬性應該設計成什麽訪問權限?這個類是不是別的類的屬性?這些類能不能提取出父類?這裏的參數應該設置成什麽?

  面向對象已經學習了一段時間了,具體使用過程中,發現原來面向對象編程需要接觸這麽多新鮮的概念。我先給自己打了強心劑:這些概念的提出都是為了讓編程更加的方便。還好,雖然“類”這個概念對我來說有些陌生,但我很自然地,把它與我之前接觸過的C語言中的結構體聯系了起來。

  沒錯,又是C語言,Java學習的過程中,我少不了要提到我親愛的C語言。這裏我不是要講它們具體的用法,而是要講對於一個新概念的理解方法和學習方法。不同語言之間的相互類比,找他們之間的區別,是我快速地理解並記住新概念的方法。

  在真正地接觸“類”與“對象”概念之前,語言的使用涉及到的數據類型不過就是四類八種描述數字、字符、邏輯真假的基本數據類型外加字符串和數組這倆引用數據類型,跟C語言或者說絕大部分的編程語言的基本類型不會有什麽太大的區別,在這個基礎上加加減減,作幾個邏輯運算,弄幾個分支、循環,這些說實話話都不難。因為,所有的東西都是相對具體的,沒有太大的理解難度,只要你現實生活中能夠描述出辦事的步驟,具備簡單的計算能力,可以很快的拿下。

  問題來了,更復雜的引用數據類型出來了!類,一種我們自己編寫的“數據類型”,一種抽象的概念。我靠,一個數據下面還有屬性?還有構造?還有方法?我靠,對於底子不紮實的朋友而言,簡直頭都要炸了。用用別人寫好的數據類型還勉強可以,現在要自己寫一個類,還要自己用,怎麽辦呢?

  其實,這個問題並不難。方法還是一樣——類比。不說類比別的語言,就類比Java本身具有的數據類型,基本數據類型我們見過,引用數據類型也不是沒有,String、數組就是很好的類比對象。去寫一個類,就是一個對象不能夠用我們已有的基本數據類型或者已有的引用數據類型描述它,編寫一個類實際上就是把不同的屬性值用各個基本數據類型來描述,類中的構造器和對象行為暫且不考慮。此時,一個類是不是就很像一個數組?數組中具有多個同類型的元素,類中具有多個同類型或不同類型的屬性;數組初始化時的語法和類初始化的語法幾乎一模一樣,都使用了new關鍵字,數組是:元素數據類型[] 數組變量名 = new 元素數據類型[元素個數];類為:類名 對象變量名 = new 類名();驚人地相似!真是驚喜啊,是,我們可以自然而然的對比起來,類名 和數據類型處於同一位置,那我就把類理解為一種數據型,再來看看它的用法。數組中要調用元素是 數組名[下標],對象要調用屬性是 對象名.屬性名,哇塞 點操作符和方括號也及其地相似,一個用來指定元素位置,一個用來指定特定屬性,下標和屬性名的功能意識一樣,都是為了得到特定位置上的值。這樣一來就好理解的多了。

  把類當成一種特殊的數據類型,對象當成這種數據類型的變量,無論是他作為別人的屬性,作為方法的參數,都可以和基本數據類型或是數組比較用法。這樣類和對象的概念就從一種復雜的、抽象的概念變成了一種簡單的、易於理解的概念。在這個基礎上,往類中添加構造器,添加get/set方法也變得簡單了不少。

  以後的學習過程中,更抽象、更復雜的概念可能還會更多。學會相互類比,找尋容易理解的學習方式,是一個程序開發者需要具備的學習能力。

從面相對象的學習過程中得出的程序開發者需要具備的類比學習能力