內部類、匿名內部類
阿新 • • 發佈:2018-12-10
內部類
把類定義在其他類的內部,這個類就叫內部類。 內部類分為:成員內部類、區域性內部類。
內部類訪問特點: 內部類可以直接訪問外部類的成員,包括私有。 外部類訪問內部類的成員,必須建立物件。
區域性內部類
區域性內部類是定義在一個方法或者一個作用域裡面的類。
public class Outer { public void function() { //區域性內部類Inner class Inner { public void print() { System.out.println("區域性內部類"); } } //在區域性位置建立內部類物件,調內部類方法,來使用區域性內部類功能 Inner in= new Inner(); in.print(); } }
public class InnerDemo {
public static void main(String[] args){
Outer out= new Outer();
out.function();
}
}
//輸出:區域性內部類
什麼時候使用區域性內部類: 假設Inner這個類只在方法function中建立這個類物件時被使用了一次。(即只在某個方法中需要用那麼一下) 當遇到這種情況時,可以在一個方法中定義區域性類。
匿名內部類
匿名內部類將區域性內部類的使用再深入一步。假如只建立這個類的一個物件,就不必命名了。
前提:存在一個類(抽象類或具體類都可以)或者介面。 格式
new 類名或者介面名{
重寫方法;
}
匿名內部類的本質: 是一個繼承了類或者實現了介面的子類的匿名物件。