1. 程式人生 > >20165235祁瑛 2018-3 《Java程序設計》第三周學習總結

20165235祁瑛 2018-3 《Java程序設計》第三周學習總結

筆記 AD 第一周 關鍵字 sys 鏈接 繼承性 main方法 git

20165235祁瑛 2018-3 《Java程序設計》第三周學習總結

教材學習內容總結

類與對象學習總結
  • 類:java作為面向對象型語言具有三個特性:①封裝性。②繼承性。③多態性。java中類是基本要素,類聲明的變量叫對象。在類中定義體的函數題叫方法。
  • 類與程序的基本結構:(一)構造方法:創建對象時用,構造方法與類同名,沒有類型。可以創建構造方法,但要保證參數個數不同或參數類型不同。(二)為對象分配變量時要用new字符。用“.”運算符來操作對象。(三)java有若幹個類構成,這些類可以在一個源文件也可以在若幹文件夾裏。
  • 參數傳值:(一)傳值機制:方法中參數變量的值是調用者指定值得拷貝。
  • 對象的組合:一個類可以把某個對象作為自己的成員變量。一個對象a組合了對象b,那麽a可以委托b調用其方法,即對象a以組合的方式復用b的方法。
  • 實例成員與類成員(一)在變量或方法前加上static叫類變量,否則叫實例變量。(二)區別:不同對象的實例變量各不相同,所有對象共享類變量,直接可以通過類名進行訪問。(三)類方法只能調用類變量,而實例變量可以調用類變量,也可以調用實例變量。
  • 方法重載:(一)定義:一個類可以有多個方法具有相同的名字,但是得保證這些方法的參數不同或參數類型不同。(二)調用重載方法引用要明確,對應相同類型的參數,調用相同類型的參數的重載方法。
  • this關鍵字:(一)this關鍵字表示某個對象。(二)this不可以出現在類方法中,在類方法中可以將this改為類名。
  • 包:通過包語句package將幾個源文件打包在一個文件夾下,可以對java文件進行有效的管理。
  • import語句:(一)語句作用是引入包中的類。(二)java.lang包是java語言的核心語句,不需要import語句來引入,其中包括“System類,Math類”。(三)如果沒有用import引入包內的類,可以直接帶包名使用該類。(四)用 private,public,protected修飾的方法和成員變量有一定的訪問權限。(五)javadoc 文件名.java 會在目錄中生成一個html的文檔,可以用瀏覽器進行查看。
  • JRE擴展與jar文件:/jre/lib/ext,只要經類打包成jar文件,放入ext中,程序就可以使用import來使用擴展中的類。

    教材學習中的問題和解決過程

  • 問題1:在教材78頁有個代碼,為什麽漢字也可以作為變量使用,漢字在java語言中不是作為Unicode編碼存在的嗎?
  • 問題1解決方案:網上尋找答案,得出答案:Java支持中文類名、方法名、屬性名,並且不會因為亂碼問題導致運行期鏈接失敗。這是Java內核支持UTF-8這一特性決定的。但是Java語言規範裏並不支持這一用法.詳見Java中用中文命名
  • 問題2:在方法重載時可以只保證返回類型不一樣嗎?
  • 問題2解決方案:上網尋得答案:方法返回類型不參與運算和比較,所以還是得保證方法參數不同,或參數類型不同。

代碼調試中的問題和解決過程

  • 問題1:在編譯時會有main方法的類時會出現“找不到符號的錯誤”,但是代碼本身沒有什麽語法錯誤。技術分享圖片
  • 問題1解決方案:在學習到包語句之後,我將與之有關的源文件打包package Java_pack.pack_1,並對這幾個源文件進行同時編譯javac bin/Java_pack/pack_1/*.java,這樣就沒有出現錯誤。然後輸入java -cp .:bin Java_pack.pack_1.文件名技術分享圖片
    下面是我在unbuntu中建立的包文件目錄:
    技術分享圖片

代碼托管

技術分享圖片

學習感悟

在本周的學習中我受益匪淺,從類到創建對象以及對調用方法等讓我感到java這個面向對象語言的強大,但讓我真正感到強大的是java龐大的類庫,比如java.lang,java.until等,這些類庫給我們提供了很多算法。與c語言不同的是,c語言一個很簡單的算法如排序查找等都得自己寫算法,而java就可以通過import語句調用類庫中的算法。其實我覺得c語言中的結構體與Java中的類有著相同的作用,c語言中有結構體數組,而java中有對象數組,都是在數組中存放一個個結構體或對象。但區別是是C語言中的結構體只是面向自己,而java中的類是面向所有對象的,不同的源文件可以調用不同源文件中的類。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一周 31/200 1/2 12/20 git使用
第二周 404/500 3/4 24/38 java基本語法
第三周 920/1000 4/7 52/60 類與對象以及打包

參考資料

  • Java學習筆記(第8版)

  • 《Java學習筆記(第8版)》學習指導

20165235祁瑛 2018-3 《Java程序設計》第三周學習總結