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:打代碼時常常將
throw
和throws
打混 - 問題10解決方案:書上168頁給出了兩個關鍵字的具體意義以及用法
代碼託管
學習心得
- 這兩章內容十分多,新的類和方法也不少,與以前學習的內容產生了混淆,要在後面的時候總結複習
- 在打代碼時候,不能只單純的打代碼,須要聯繫上下文以及提示,好比須要建立一個
.txt
文件等,不然運行時會發生錯誤 - 課下選作題有必定難度,經過這兩道題也發現了本身的薄弱環節,還須要繼續努力