天天看點

局部類

public class Parcel5 {
    public Destionation destionation(String str){
        class PDestionation implements Destionation{
            private String label;
            private PDestionation(String whereTo){
                label = whereTo;
            }
            public String readLabel(){
                return label;
            }
        }
        return new PDestionation(str);
    }
    
    public static void main(String[] args) {
        Parcel5 parcel5 = new Parcel5();
        Destionation d = parcel5.destionation("chenssy");
    }
    
    private interface Destionation{};
}      

局部類是嵌套類,但不是成員類,而且有名稱(不是匿名類)。

局部類所屬範圍:在塊、構造器以及方法内,這裡的塊包括普通塊和靜态塊。局部類隻在本塊範圍内有效。

局部類最多隻能有final修飾

public class Test {
    {
        class AA{}//塊内局部類
    }
    public Test(){
        class AA{}//構造器内局部類
    }
    public static void main(String[] args){
    }
    public void test(){
        class AA{}//方法内局部類
    }
}
//注意到了吧,可以同名,編譯後,形成諸如:外部類名稱+$+同名順序+局部類名稱
//Test$1AA.class/Test$2AA.class/Test$3AA.class