20165330 2017-2018-2 《Java程序設計》第5周學習總結

課本知識總結

第七章 內部類與異常類

  • 內部類:類的一種成員
  1. 外嵌類:包含內部類的類稱爲內部類的外嵌類
  2. 兩者關係:
    • 內部類的外嵌類的成員變量在內部類中仍然有效,內部類中的方法也能夠調用外嵌類中的方法。
    • 內部類的類體中不能夠聲明類變量和類方法。外嵌類的類體中能夠用內部類聲明對象,做爲外嵌類的成員。
    • 內部類僅供它的外嵌類使用,其餘類不能夠用某個類的內部類聲明對象。
  3. 內部類能夠修飾爲static內部類
  4. static內部類不能操做外嵌類中的實例成員變量
  5. 內部類對應的字節碼文件名字格式:外嵌類名$內部類名
  • 匿名類:一個子類去掉聲明後類體
    • 若是某個方法的參數是接口類型,那麼可使用接口名和類體組合建立一個匿名對象傳遞給方法的參數,類體必需要重寫接口中的所有方法。
  • 異常類:即程序運行時可能出現的一些錯誤
  1. try-catch語句(處理異常),格式以下:
try {
     包含可能發生異常的語句
 }
 catch(ExceptionSubClass e) {
     ...
 }
 catch(ExceptionSubClass e) {
     ...
 }
  1. 自定義異常類

一個方法在聲明時可用相應的異常類建立對象,並使用throw關鍵字拋出該異常對象,致使該方法結束執行。java

程序必須在try-catch塊語句中調用可能發生異常的方法,其中catch的做用就是捕獲throw關鍵字拋出的異常對象。正則表達式

  • 斷言:通常用於程序不許備經過捕獲異常來處理的錯誤
  1. 語法格式:
assert booleanExpression;
assert booleanExpression:messageException;
  1. 啓用斷言語句:
java -ea mainClass
  1. 關閉斷言語句:當使用Java解釋器直接運行應用程序時,默認地關閉斷言語句數組

    第十章 輸入、輸出流

  • File類
  1. 構造File對象
    • File(String filename);
    • File(String directoryPath,String filename);
    • File(File dir,String filename);
  2. 文件屬性
    image
  3. 建立目錄:public boolean mkdir();
  4. 建立文件:public boolean createNewFile();
  5. 刪除當前文件:file.delete();
  6. 使用Runtime類執行可執行文件
  • 文件字節輸入流
  1. 使用步驟:
    • 設定輸入流的源
    • 建立指向源的輸入流
    • 讓輸入流讀取源中的數據
    • 關閉輸入流
  2. 構造方法:
FileInputStream(String name);
FileInputStream(File file);
  1. 關閉流:close()
  • 文件字節輸出流
  1. 使用步驟:
    • 給出輸出流的目的地
    • 建立指向目的地的輸出流
    • 讓輸出流把數據寫入到目的地
    • 關閉輸出流
  2. 構造方法:
FileOutputStream(String name);
FileOutputStream(File file);
  1. 關閉流:經過調用close()方法
  • 緩衝流:BufferedReader和BufferedWriter類建立的對象
  1. 構造方法分別爲:
BufferedReader(Reader in);
BufferedWriter (Writer out);
  1. BufferedReader流可以讀取文本行,方法是readLine()
  • 隨機流:RandomAccessFile類建立的流
    • 構造方法:
RandomAccessFile(String name,String mode)

參數mode 取r(只讀)或rw(可讀寫),決定建立的流對文件的訪問權利。dom

RandomAccessFile(File file,String mode)
  1. 流可調用getFilePointer()方法獲取流的當前讀寫位置
  • 數組流
    • 字節數組流:
      • 輸入流:ByteArrayInputStream(byte[] buf);ByteArrayInputStream(byte[] buf,int offset,int length);
      • 輸出流:ByteArrayOutputStream();ByteArrayOutputStream(int size);
    • 字符數組流:CharArrayReader和CharArrayWriter類
  • 數據流
    • 數據輸入流:DataInputStream
    • 數據輸出流:DataOutputStream
  • 對象流
    • 對象輸入流:ObjectInputStream(InputStream in)
    • 對象輸出流:ObjectOutputStream(OutputStream out)
  • 使用Scanner解析文件
  1. 使用默認分隔標記解析文件:建立Scanner對象,並指向要解析的文件
File file = new File("hello,java");
Scanner sc = new Scanner(file);

2.使用正則表達式做爲分隔標記解析文件:建立Scanner對象,並指向要解析的文件,並使用useDelimiter方法指定正則表達式做爲分隔標記code

File file = new File("hello.java");
Scanner sc = new Scanner(file);
sc.useDelimiter(正則表達式);
  • 帶進度條的輸入流:可使用javax.swing包提供的輸入類流ProgressMonitorInputStream。
ProgressMonitorInputStream(Component c,String s,InputStream);
  • 文件鎖
  1. 先使用RandomAccessFile流創建指向文件的流對象,該對象的讀寫屬性必須是rw
RandomAccessFile input=new RandomAccessFile("Example.java","rw");
  1. input流調用方法getChannel()得到一個鏈接到底層文件的FileChannel對象(信道)
FileChannel channel=input.getChannel();
  1. 信道調用tryLock()或lock()方法得到一個FileLock(文件鎖)對象,這一過程也稱做對文件加鎖
FileLock lock=channel.tryLock();
  1. 對一個文件加鎖後,若是想讀寫,寫文件必須讓FileLock對象調用release()釋放文件鎖
lock.release();

代碼託管

image

上週錯題總結

  1. image

    解析:B項:用+表示public,用-表示private。D項:由子類指向父類。對象

  2. image

    解析:用類聲明的變量稱爲對象。blog

  3. image

    解析:C項:NullPointerException異常。E項:若引用相同,則具備徹底相同的實體。接口

  4. image

    解析:A項:圓錐對象委託圓對象調用getArea()方法計算底的面積。文檔

  5. image

    解析:B項:前後順序爲package、import、class。C項:不能夠太過簡單,起碼要標註包的名稱。D項:見API文檔介紹。get

  6. image

    解析:Integer類型的對象包含一個int類型的字段,Integer會自動拆箱爲int,所以值相等。

相關文章
相關標籤/搜索