內部類、訪問許可權課堂筆記
內部類的定義:一個類的定義放在另一個類的內部 內部類作為外部類的一個成員,依附於外部類而存在的
*內部類是一個獨立的類,生成獨立的class檔案,檔名格式為:外部類類名·$內部類名
包 包名在世界範圍內不重複 (域名在世界範圍內不重複)
把實現相同功能的java檔案放到一個目錄裡
Com.oracle.xxx.xxx
域名 專案名稱 導包的時候寫到具體的類
TRL+SHIFT+F 程式碼格式化
構造程式碼快 一般用於給類裡的變數進行初始化的 該程式碼快早於構造方法執行
靜態程式碼塊》構造程式碼塊》構造方法
四種類型的內部類:成員內部類,方法內部類,匿名內部類,靜態內部類
1.成員內部類 :在一個包含類中定義的不使用靜態修飾符的型別,與成員變數、方法同一個層次,可以訪問包含類所有的成員,在包含類中建立成員內部類例項的語法 this.new innerclass(); 在包含類外建立成員內部類例項的語法。(new Outerclass()).new Innerclass(); 建立外圍物件之前不可能建立內部類的物件。
2.方法內部類:定義在 方法體中的類,方法內部類只能定義該內部類的方法內例項化,不可以在此方法外對其例項化。最少使用的內部類形式,如同本地變數的定義,不允許有訪問修飾符。
3.靜態內部類:不能與包含類同名 建立靜態內部類例項的語法:
Outer.Inner inner = new Outer.Inner();
4 匿名內部類 只用到類的一個例項 類在定義後馬上用到
*匿名內部類不能有構造方法。
*匿名內部類不能定義任何靜態成員、靜態方法
*匿名內部類不能是public,protected,private,static
*只能建立匿名內部類的一個例項
*一個匿名內部類一定是在new的後面,用其隱含實現一個介面或實現一個類
異常 lang不用導包
Erro是處理執行環境方面的錯誤,這類異常主要和硬體有關係,通常程式不對這類異常進行處理
Exception用來表示程式活動導致的錯誤,異常處理機制是針對Exception類的
*執行時異常RuntimeException
1.不作處理
2.使用try-catch-finally語句捕獲異常
Try{
//被保護區間 第一行
//用關鍵字try控制
//將可能導致異常的程式碼放在這裡
//我們可以放置1到多行程式碼
}
catch(MyFirstError) {
// 處理MyFirstError的程式碼.
//MyFirstError的異常處理控制代碼
}
catch(MySecondError) {
// MySecondError異常處理控制代碼
}finally{
//無論try塊中有無異常,最後必須執行 的程式碼
}
3.通過throws子句宣告異常(該異常我自己不去處理,如果誰呼叫這個方法,必須把這個異常處理掉) main方法再往上拋給jvm虛擬機器
*非執行時異常 必須進行處理
一個未捕獲的異常可能導致程式停止
常用異常
java.lang.ArithmeticException 算術異常
java.lang.NullPointerException 空指標異常
java.lang.ArrayIndexoutOfBoundsException 陣列越界異常
java.lang.SecurityException 安全異常
Java.lang.NegativeArraySizeException 負值陣列大小異常