黑馬程序員_編程學習心得

----------- android培訓、java培訓、java學習型技術博客、期待與您交流! ------------

分享一些學習編程語言的小心得。

1.剛接觸面向對象,想要全面的記住面向對象裏面的語法規則是有較大難度的,尤其是涉及到一些特別容易混淆的知識點時,就更加難以記住了。那該如何記住這些知識點呢?我的建議是根據生活中的實例來記憶語法規則,面向對象相對於面向過程的一大優勢就是提高了代碼的重複利用率,方便了程序的編寫,面向對象的思想來源於生活,因此類比生活中的事務,有助於幫助自己記憶知識點。

  例如:如何理解子類的構造函數要先調用父類中的構造函數,如果父類中沒有空構造函數時,爲什麼需要在子類中的顯示調用父類中的構造函數。

對於這一點的解釋是:

對於子類調用父類的構造方法可以做出如下解釋: 子類無條件地繼承父類的不含參數的構造方法。如果子類自己沒有構造方法,則它將繼承父類的無參數構造方法作爲自己的構造方法;如果子類自己定義了構造方法,則在創建新對象時,它將先執行繼承自父類的無參數構造方法,然後再執行自己的構造方法。 對於父類含參數的構造方法,子類可以通過在自己的構造方法中使用 super 關鍵字來調用它,但這個調用語句必須是子類構造方法的第一個可執行語句。

雖然解釋的很詳細但是對於記憶來說不太容易,還有對於有些喜歡知根知底的人來說,解釋裏面可能又會冒出兩三個問題,例如子類爲什麼必須小調用父類中的構造方法?super()語句爲什麼在子類的構造方法中的第一句來執行?

如果你在記憶這些知識點時和生活中你所熟悉且容易理解的例子進行比較,你會發現這個知識點自然而然就被記住了。

例如:假如Vehicle是父類,bus,bike是子類,父類的構造方法是爲了初始化Vehicle的各個部件比如輪胎,座位等等,有時你想要快速的得到Vehicle的對象,就需要調用父類中的無參構造函數。這樣你可以直接用Vehicle vehicle = new Vehicle();快速的得到一個Vehicle對象。創建bus子類是爲了快速得到bus對象,而bus對象在產生時,可能也需要初始化輪胎,座位等。我們知道子類會默認繼承父類中的成員,假如我在Vehicle的構造方法初始化了4個輪胎和沒有初始化輪胎的,而我需要的bus是4個輪胎,bike是兩個輪胎。說到這裏可能你就知道爲什麼子類要調用父類中的構造方法了,因爲子類在初始化時需要知道父類對其屬性的處理方式,也正是因爲如此,super()語句需要出現在子類構造函數中的第一行,不然的話子類的初始化方式可能會被父類覆蓋,那麼初始化還有什麼意義?

再比如:構造代碼塊,和靜態代碼塊的區別,和書寫位置,以及何時使用這兩種代碼塊。

可以這樣理解:靜態構造代碼塊對了類的初始化,既然是對類的初始化所以是在類加載時執行,又由於類在jvm中是以唯一的類的.class的字節碼文件形式存在的,所以僅執行一次。
構造代碼塊主要是對類的對象的共性進行初始化,所以每創建一次對象就要調用一次構造代碼塊的代碼,使得類的所有對象有相同的初始化屬性。
舉例:車的圖紙是類,生產出來的每輛車是類的對象。靜態代碼塊可以理解爲是對圖紙的初始化(規定圖紙的各個參數等)構造代碼塊是對所有生產的車進行初始化(比如初始化車剎車方向盤等)。
這個問題我相信只要你記住了車的圖紙的例子,在結合上面較理論方面的解釋,問題應該比較容易理解,也容易記憶。後續遇到這類問題以及衍生的問題你也可以通過這個例子進行推導和變通。當然你可以有自己的方法,反正適合於你的,就是最好的。

2.程序員的水平是敲代碼敲出來的。對於初學者來說,經常一小段代碼會跳出來很多個問題,讓人看着就怕。這時最好的也是唯一的辦法就是一個一個解決,看不懂英文提示的話,就用軟件翻譯,當遇到程序能運行,但是結果和預期的目標不同時,可以先嚐試自己解決,解決不了的話百度上找答案,實在不行的話,再請教別人(實際開發的時候可沒有什麼人能在一旁像老師一樣指導你)。自己解決bug,可以鍛鍊自己調試問題的能力,對於英文不好的人也能鍛鍊英文能力。上網查找資料能鍛鍊你搜索資料的能力,以及現學現用的能力(開發時只要能完成任務就行),總之敲代碼纔是鍛鍊編程能力的王道。

3.注意英語學習,歐美在編程方面領先國內是衆所周知的,很多最新的參考資料都是用英文書寫的,想要學最新的知識,至少英語的閱讀能力要好(其實英文的技術文章不難,基本用到的詞彙都是比較常見的,且由於是專業術語,翻譯成中文很固定,且句子結構都比較簡單)可能有些人會覺得剛開始不是可以看中文版的資料嗎?好的那我舉個最直接的例子,當你遇到編程跳出來的錯誤時,如果你看的懂那些英文,你肯定不會像哪些看不懂的人一樣丈二和尚摸不着頭腦,還有當你學習一個新的類時,你和僅憑藉類名和方法名就推測出這個類大致是用來幹什麼的,這無疑能大大提升你學習新東西的效率。另外撇開編程不說,英文好的話,對於你的生活也是有幫助的,甚至還有你意想不到的作用,詳情請在論壇搜索學好英文。

4.拒絕三天打魚兩天曬網的行爲。學編程是個苦差事,尤其是你想要學好編程,離不開每天都在電腦上敲打幾個小時,如果說你有很好的毅力還好,相信堅持1年的時間你的能力一定能有所提升,不是有名人說過,只要你能堅持全身心的學習一件事情每天堅持3個小時,堅持3年,你就能成爲大師。所以你需要保證明天一定的代碼量,等你積累到一定程度的時候相信你會有不錯的編程能力。還有別想這一口喫成太多,小心會反胃,影響長期學習的積極性,當然那些以學習新技術爲生活中的重要樂趣的人除外。

以上的東西純手打,一方面分享一下自己的小心得,同時也算是對自己的小小總結,如果你有什麼經驗,希望你也能跟我分享下。另外求加技術分啊,我要進黑馬!!!

----------- android培訓、java培訓、java學習型技術博客、期待與您交流! ------------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章