《Java程序設計》第六週學習總結

20175334 《Java程序設計》第六週學習總結

教材學習內容總結

第七章html

  • 掌握內部類
    • Java支持在一個類中定義另外一個類,這樣的類被稱做內部類,包含內部類的類稱做內部類的外嵌類
    • 內部類和外嵌類的重要關係:
      • 內部類的外嵌類的成員變量在內部類中仍然有效,內部類中的方法也能夠調用外嵌類中的方法
      • 內部類的類體中不能夠聲明類變量和類方法,外嵌類的類體中能夠用內部類聲明對象,做爲外嵌類的成員
      • 內部類僅供它的外嵌類使用,其餘類不能夠用某個類的內部類聲明對象
    • Java編譯器生成的內部類的字節碼文件名稱格式爲外嵌類名$內部類名
    • 內部類能夠被修飾爲static內部類,但不能操做外嵌類中的實例成員變量
  • 掌握匿名類
    • 和子類有關的匿名類:
      • 直接使用一個類的子類的類體建立一個子類對象
      • 不可能用匿名類聲明對象,但能夠直接用匿名類建立一個對象
      • 匿名類的特色:
        • 匿名類能夠繼承父類的方法也能夠重寫父類的方法
        • 使用匿名類時,必然是在某個類中直接用匿名類建立對象,所以匿名類必定是外部類
        • 匿名類能夠訪問外嵌類中的成員變量和方法,匿名類的類體中不能夠聲明static成員變量和static方法
        • 因爲匿名類是一個子類,但沒有類名,因此在用匿名類建立對象時,要直接使用父類的構造方法
    • 和接口有關的匿名類:
      • 直接用接口名和一個類體建立一個匿名對象
      • 若是某個方法的參數是接口類型,那能夠使用接口名和類體組合建立一個類名對象傳遞給方法的參數,類體必須重寫接口中的所有方法
  • 理解異常類
    • 異常對象能夠調用public String getMessage()public void printStackTrace()public String toString()這些方法獲得或輸出有關異常的信息
    • try-catch語句處理異常,將可能出現的異常操做放在try部分,發生異常後的處理放在catch部分
    • 一個方法體在聲明時能夠用關鍵字throws聲明要產生的若干個異常,並用關鍵字throw拋出該異常對象
  • 理解斷言
    • 斷言語句通常用於程序不許備經過捕獲異常來處理的錯誤
    • 用關鍵字assert聲明一條斷言語句,有兩種格式assert booleanExpression;assert booleanExpression:messageException;
    • 用關鍵字-ea啓用斷言語句

第十章java

  • 輸入、輸出流提供一條通道程序,能夠使用其讀取源中的數據,或把數據送到目的地;輸入流的指向稱做源,程序從指向源的輸入流中讀取源中的數據;輸出流的指向稱做目的地,程序經過向輸出流中寫入數據把信息傳遞到目的地
  • InputStream的子類建立的對象稱做字節數入流,字節數入流按字節讀取源中的數據,只要不關閉流,每次調用讀取方法時就順序地讀取源中的其他的內容,直到源中的末尾或流被關閉
  • Reader的子類建立的對象稱做字符輸入流,字符輸入流按字符讀取源中的數據,只要不關閉流,每次調用讀取方法時就順序地讀取源中的其他內容,直到源中的末尾或流被關閉
  • OutputStream的子類建立的對象稱做字節輸出流,字節輸出流按字節將數據寫入輸出流指向的目的地中,只要不關閉流,每次調用寫入方法就順序地向目的地寫入內容,直到流被關閉
  • Writer的子類建立的對象稱做字符輸出流,字符輸出流按字符將數據寫入輸出流指向的目的地中,只要不關閉流,每次調用寫入方法就順序地向目的地寫入內容,直到流被關閉
  • 使用對象寫入或讀入對象時,要保證對象是序列化的,這是爲了保證能把對象寫入到文件,並能再把對象正確讀回到程序中;使用對象流很容易獲取一個序列化對象的克隆,咱們只需將該對象寫入對象輸出流指向的目的地,而後將該目的地做爲一個對象輸入流的源,那麼該對象輸入流從源中讀回的對象必定是原對象的一個克隆

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

  • 問題1:運行第十章例子2時運行結果爲空白
  • 問題1解決方案:從新翻過書後發現此例子是列出當前目錄下所有.java文件的名字,由於我寫代碼.class.java是分開的,因此結果爲空白
  • 問題2:運行第十章例子3時彈出java.io.IOException: Cannot run program "/home/lxr/java2017/第十章/bin/c:/windows/Notepad.exe": error=2, 沒有那個文件或目錄
  • 問題2解決方案:藍墨雲中有人問過此問題,由於Linux中沒法讀取.exe文件,因此須要在Windows系統中運行
  • 問題3:運行第十章例子4時彈出File read Errorjava.io.FileNotFoundException: Example10_4.java (沒有那個文件或目錄)
  • 問題3解決方案:本身研究後發現須要把例子14的.java文件和.class文件放在一塊兒
  • 問題4:運行第十章例子6時運行結果爲空白
  • 問題4解決方案:翻書後發現此例子是將文件a.txt內容尾加到文件b.txt
  • 問題5:運行第十章例子7時彈出java.io.FileNotFoundException: english.txt (沒有那個文件或目錄)
  • 問題5解決方案:翻書後發現此例子須要建立一個english.txt文件
  • 問題6:運行第十章例子7時彈出java.io.FileNotFoundException: english.txt (沒有那個文件或目錄)
  • 問題6解決方案:翻書後發現此例子須要建立一個english.txt文件
  • 問題7:運行第十章例子15時彈出java.io.FileNotFoundException: cost.txt (沒有那個文件或目錄)
  • 問題7解決方案:從新翻過書後發現須要寫一個cost.txt文件,以後能夠正常運行
  • 問題8:運行第十章例子16時彈出java.io.FileNotFoundException: student.txt (沒有那個文件或目錄)
  • 問題8解決方案:從新翻過書後發現須要寫一個student.txt文件,以後能夠正常運行
  • 問題9:運行第十章例子20時會把答案一塊兒顯示
  • 問題9解決方案:還沒有解決
  • 問題10:打代碼時常常將throwthrows打混
  • 問題10解決方案:書上168頁給出了兩個關鍵字的具體意義以及用法

代碼託管

學習心得

  • 這兩章內容十分多,新的類和方法也不少,與以前學習的內容產生了混淆,要在後面的時候總結複習
  • 在打代碼時候,不能只單純的打代碼,須要聯繫上下文以及提示,好比須要建立一個.txt文件等,不然運行時會發生錯誤
  • 課下選作題有必定難度,經過這兩道題也發現了本身的薄弱環節,還須要繼續努力

參考資料

相關文章
相關標籤/搜索