一、內(nèi)部類:
1、概念:
定義在其他類的內(nèi)部的類就叫內(nèi)部類,其他的類被稱為外部類。在內(nèi)部類中可以直接訪問外部類的所有成員。
2、分類:
成員內(nèi)部類、局部內(nèi)部類。
3、成員內(nèi)部類:
成員內(nèi)部類,定義在外部類中的成員位置。
class 外部類 {
修飾符 class 內(nèi)部類 {
//其他代碼
}
}
訪問方式:
外部類名.內(nèi)部類名 變量名 = new 外部類名().new 內(nèi)部類名();
4、局部內(nèi)部類:
局部內(nèi)部類,定義在外部類方法中的局部位置。
class 外部類 {
修飾符 返回值類型 方法名(參數(shù)) {
class 內(nèi)部類 {
//其他代碼
}
}
}
訪問方式:
在外部類方法中,創(chuàng)建內(nèi)部類對象,進(jìn)行訪問
class Party {//外部類,聚會(huì)
public void puffBall(){// 吹氣球方法
class Ball {// 內(nèi)部類,氣球
public void puff(){
System.out.println("氣球膨脹了");
}
}
//創(chuàng)建內(nèi)部類對象,調(diào)用puff方法
new Ball().puff();
}
}
public static void main(String[] args) {
//創(chuàng)建外部類對象
Party p = new Party();
//調(diào)用外部類中的puffBall方法
p.puffBall();
}
5、匿名內(nèi)部類:
定義的匿名內(nèi)部類有兩個(gè)含義:
?、?、 臨時(shí)定義某一指定類型的子類;
②、 定義后即刻創(chuàng)建剛剛定義的這個(gè)子類的對象;
作用:
匿名內(nèi)部類是創(chuàng)建某個(gè)類型子類對象的快捷方式。
new 父類或接口(){
//進(jìn)行方法重寫
};