1. 程式人生 > >Java內部類和匿名內部

Java內部類和匿名內部

內部類

簡述:
如果一個事物的內部包含另一個事物,那麼這就是一個類內部包含一個類。
例如:身體和心臟

分類:
1.成員內部類
2.區域性內部類(包含匿名內部類)

成員內部類:
成員內部類定義格式:
修飾符 class 類名稱{
修飾符 class 類名稱{
內容…
}
內容…
}
注意:內用外,隨意訪問;外用內,需要內部類物件

=======================
如何使用成員內部類? 兩種方法:
1.在外部類的方法當中,使用內部類;然後main只是呼叫外部類的方法。(間接)
2.公式:[外部類名稱.內部類名稱 物件名 = new 外部類名稱().new 內部類名稱();](直接)	

區域性內部類:
如果一個類是定義在一個方法內部,那麼這個類就是一個區域性內部類 。
只有當前所屬的方法才能使用它

定義格式:
修飾符 class 外部類名稱{
修飾符 返回值型別 外部類方法名稱(引數列表){
class 區域性內部類名稱{
內容…
}
}
}
類的許可權修飾符:
public > protected > (default) > private
定義一個類的時候,許可權修飾符規則:
外部類:public / (default)
成員內部類:public protected (default) private
區域性內部類:什麼都不能寫 不同於(default)

匿名內部類:

簡述:
如果介面的實現類,或者是父類的子類,只需要使用唯一的一次
這種情況下可以省略掉該類的定義,使用匿名內部類

匿名內部類定義格式:
介面名稱 物件名 = new 介面名稱(){
//覆蓋重寫所有抽象方法
};

對格式“new 介面名稱(){…}”進行解析
1.new代表建立物件的動作
2.介面名稱就是匿名內部類需要實現哪個介面
3.{…}匿名內部類的內容

注意事項:
1.匿名內部類,在建立物件的時候,只能使用唯一一次
2.匿名物件,在呼叫方法的時候只能呼叫唯一一次。