1. 程式人生 > >201711671212 《JAVA程式設計》第八週學習總結

201711671212 《JAVA程式設計》第八週學習總結

教材學習內容總結

本週學習內容:第7章 內部類與異常類 ,第8章 常用實用類。

第七章:

1.內部類:在一個類中定義另一個類。而包含內部類的類成為內部類的外嵌類。

  • 內部類中的方法可以呼叫外嵌類中的方法;內部類的類體中不可以宣告類變數和類方法;其他類不可以用某各類的內部類宣告物件。
  • 內部類對應的位元組碼檔案的名字格式是“外嵌類名$內部類名”。
  • 內部類可以被修飾為static內部類,但static內部類不能操作外嵌類中的例項成員變數。

2.匿名類:一個子類去掉類聲明後的類體。

  • 它是一個子類,不可以宣告物件,但是可以用匿名類建立一個物件。
  • 可以繼承或改寫父類方法。
  • 匿名類一定是內部類。
  • 不可以宣告static成員變數和static方法。
  • 匿名類沒有類名,所以使用匿名類建立物件時,要直接使用父類的構造方法。
new Bank() {
        匿名類的類體
};
  • 直接用介面名和一個類體建立一個匿名物件,實現了Computable介面的類去掉類聲明後的類體;
new Computable() {
    實現介面的匿名類的類體
};

3.異常類

(1)try-catch語句:try部分丟擲一場物件,或呼叫某個可能丟擲異常物件的方法,則try立刻結束執行,轉向執行相應的catch部分

try {
包含可能發生異常的語句
}
catch(ExceptionSubClass e) {
...
}
catch(ExcptionSubClass e)  {
...
}
 
  • 各個catch引數中的異常類都是Exception的某個子類,這些子類不能有父子關係,否則保留一個含有父類引數的catch即可。

(2)自定義異常類

  •  throw關鍵字的作用是丟擲異常。
  • throw和throws是兩個不同的關鍵字。

(3)斷言

  • 一般用於程式不準備通過捕獲異常來處理的錯誤。
  • 格式:
assert booleanExpression;
assert booleanExpression:messageException;
  • 啟用斷言語句:-ea
  • 例如:java -ea mainClass

(4)帶finally子語句的try-catch語句

try{}
catch (ExceptionSubClass e){}
finally{}
  • 執行ry-catch語句後,執行finally語句。
  • 如果在try-catch語句中執行了return語句,finally子語句仍然會被執行
  • 如果執行了程式退出程式碼(System.exit(0);),則不執行finally語句以及其後的所有語句。

第八章:

一、String類 

  1. 用於處理字元序列的類
  2. String類是被定義為final類,即String類不可以有子類。
  3. 構造String類
String s=new String("we are students");//第一種構造方法。

char a[]={'j','a','v','a'};
String s=new String(a);                //第二中構造方法:相當於 String s= new String("Java");


char a[]={'零','壹','貳','叄','肆','伍','陸','柒','捌','玖'};
String s=new String(a,2,4);            //第三種構造方法

                                        //相當於 String s=new String("貳叄肆伍");

       引用String常量

二、字串

1.String使用“+”號進行並置運算 ,可得一個新的String物件

String you="你";
String hi="好";
String testOne;

testOne=you+hi;

    例子8_1

public class Example8_1 {
	public static void main(String args[]) {
		String hello="你好";
		String testOne="你"+"好";
		System.out.println(hello==testOne);		//ture	
		System.out.println("你好"==testOne);		//ture
		System.out.println("你好"==hello);		//ture
		String you="你";
		String hi="好";
		String testTwo=you+hi;
		System.out.println(hello==testTwo);		//輸出結果是false
		String testThree=you+hi;
		System.out.println(testTwo==testThree);	//輸出結果是false
	}
}

2.String類的常用方法

public int length() 

public boolean equals(String s)

public boolean startWith(String s)、public boolean endsWith(String s)

public int compareTo (String s)

public boolean contains(String s)

public String substring(int startpoint)

public String trim()

3.物件的字串表示: 建立物件的類的名字@物件的引用的字串表示

4.正則表示式課查閱java.util.regex包中的Pattern類,元字元重要,需謹記。

5.字串的替換:String物件呼叫public String replaceAll(String regex,String replacement)方法。

字串的分解:String物件呼叫public String[] split(String regex)方法。

三、StringTokenizer類

1.該類有兩個常用的構造方法

  • StringTokenizer (String s):為String物件s構造一個分析器,使用預設分隔標記。
  • StringTokenizer (String s,String delim):為String物件s構造一個分析器,引數delim的字元序列中的字元的任意排列被作為分隔標記。
  • 用空間換取速度
StringTokenizer fenxi = new StringTokenizer("You are welcome");
StringTokenizer fenxi = new StringTokenizer("you#*are*##welcome","#*");

2.空格符、換行符、回車符、Tab符、進紙符為預設的分隔標記。

四、Scanner類

  • Scanner物件可以呼叫方法useDelimiter(正則表示式):把與正則表示式匹配的字元序列作為分隔標記。
  • 用速度換取空間

五、StringBuffer類

  1. 構造方法:StringBuffer();StringBuffer(int size); StringBuffer(String  s)。
  2. String類的物件的字元序列的字元不能被修改、刪除;而StringBuffer類的物件的實體的記憶體空間可以自動改變大小。 

參考資料

  • Java 2 實用教程(第5版)