201711671135 《Java程式設計》第七章學習總結
教材學習內容
1.內部類的外嵌類的成員變數在內部類中任然有效,內部類中的成員方法也可以呼叫外嵌類的方法。內部類的類體中不可以宣告類變數和類方法(類變數、類方法,這個是先於物件存在的,在java類被載入到執行環境中的時候,就存在的了,用static關鍵字修飾的。可以用‘類名.類方法’‘‘類名.類變數’的語法來呼叫。)
class Demo{
int x; //x是例項變數,也是成員變數
static
public int x() { //該方法為例項方法,是成員方法
return x;
}
public
x = x1;
}
}
內部類對應的位元組碼檔案的名字格式是”外嵌類名$內部類名”
2. 匿名類是不能有名字的類,它們不能被引用,只能在建立時用New語句來宣告它們。匿名類的宣告是在編譯時進行的,例項化在執行時進行,這意味著for迴圈中的一個new語句會建立相同匿名類的幾個例項,而不是建立幾個不同匿名類的一個例項。
①繼承一個類,重寫其方法
②實現一個介面,可以是多個
3.各個catch引數中的異常類都是Exception的某個子類,表表明try部分可能發生的異常,這些子類之間不能有父子關係,否則保留一個含有父類引數的catch即可
Throw可以在方法中宣告具體的異常操作,用相應的異常類建立物件,並使用throw丟擲該異常物件。
4.斷言使用在程式碼除錯階段,用於程式不準備通過捕獲異常來處理的錯誤
使用assert關鍵詞來宣告斷奶眼語句
5. java的異常可以出現在方法除錯中,即在方法呼叫過程中丟擲異常物件,導致程式執行出現異常,並且等待處理。java 使用Try-catch語句來處理異常,將可能出現的異常操作放在try部分,當try的某個方法發生一場之後,try部分將立即結束執行,轉向相應的catch語句部分。
教材學習中的問題和解決過程
1.斷言在c語言中也有使用,其使用方法經查詢如下:
assert巨集的原型定義在<assert.h>中,其作用是如果它的條件返回錯誤,則終止程式執行
#include <assert.h>
void assert( int expression );
2.在使用斷言語句中,多次無法執行,後來發現是沒有使用boolean型的表示式
程式碼實現
package Try_Catch;
public class Application {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n = 0,m =0,t=100;
try {
m = Integer.parseInt("8888");
n = Integer.parseInt("ab89");//發生異常,轉向catch
t = 7777;//t 沒有機會賦值
} catch (Exception e) {
System.out.println("發生異常:" + e.getMessage());
}
System.out.println("n=" + n + ",m="+ m+ ",t=" + t);
try {
System.out.println("故意丟擲I/O異常!");
throw new java.io.IOException("我是故意的");//故意丟擲異常
} catch (Exception e) {
System.out.println("發生異常:" + e.getMessage() );
}
}
}