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

內部類、匿名內部類

內部類

把類定義在其他類的內部,這個類就叫內部類。 內部類分為:成員內部類、區域性內部類。

內部類訪問特點: 內部類可以直接訪問外部類的成員,包括私有。 外部類訪問內部類的成員,必須建立物件。

區域性內部類

區域性內部類是定義在一個方法或者一個作用域裡面的類。

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 類名或者介面名{
	重寫方法;
}

匿名內部類的本質: 是一個繼承了類或者實現了介面的子類的匿名物件。