Java學習(內部類)
阿新 • • 發佈:2018-12-03
1. 成員內部類
1)格式:
修飾符 class 類名稱
{
修飾符 class 類名稱
{
//......
}
//......
}
2)內部類呼叫包含該內部類的外部類類成員變數與方法隨意訪問,反過來則需要使用內部類物件呼叫
3)使用內部類的方法:
間接方法:在外部類的方法中,使用內部類呼叫其中的方法與變數。
直接方法:外部類名.內部類名稱 物件名 = new 外部類名稱().new 內部類名稱()
4)訪問重名的外部類成員變數
出現重名情況,可以用:外部類名.this.外部類成員變數名稱
public class Outer{ int num = 10;//外部類成員變數 public class Inner{ int num = 20;//內部類成員變數 public void method(){ int num =30;//內部類區域性變數 System.out.println(num);//輸出內部類區域性變數,就近原則 System.out.println(this.num);//輸出內部類成員變數 System.out.println(Outer.this.num);//輸出外部類成員變數 } } }
2. 區域性內部類
格式:
修飾符 class 外部類名稱{
修飾符 返回值型別 外部類方法名稱(引數列表){
class 區域性類名稱{
//......
}
}
}
3. 類定義時的許可權修飾符規則
1)外部類:public/(default)
2)成員內部類:public/protected/(default)/private
3)區域性內部類:什麼都不用寫
4. 匿名內部類
如果介面的實現類(或者父類的子類)只需要使用一次,就可以省略該類的定義,改為使用匿名內部類
介面名稱 物件名 = new 介面名稱(){
//覆蓋重寫介面中所有抽象方法
}
省略了實現類/子類名稱,匿名物件則是省略了物件名稱