1. 程式人生 > >不認路的河水の部落格

不認路的河水の部落格

內部類

內部類從表面看是在一個類的內部又定義了一個類。

public class OuterClass {
    private String name ;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    class InnerClass{
        public InnerClass(){
            name = "yanujun";
        }
    }
}

1、為什麼要使用內部類

  在我們程式設計中有時候會存在一些使用介面很難解決的問題,這個時候我們可以利用內部類提供的、可以繼承多個具體的或者抽象的類的能力來解決這些程式設計問題。可以這樣說,介面只是解決了部分問題,而內部類使得多重繼承的解決方案變得更加完整。

public interface Father {
}

public interface Mother {
}

public class Son implements Father, Mother {
}

public class Daughter implements Father{
    class Mother_ implements Mother{
    }
}

2、內部類的基礎

  • 建立內部類例項
OuterClass outerClass = new OuterClass();
OuterClass.InnerClass innerClass = outerClass.new InnerClass();
  • 內部類可以訪問外圍類的所有屬性

3、內部類的型別

  內部類三種類型,成員內部類、區域性內部類和匿名內部類

  • 1、成員內部類就是最常見的內部類,它可以訪問外圍類的所有方法和屬性。因為它是成員,所以它依賴外圍類的建立來建立,同時它不能有static方法和變數。
  • 2、區域性內部類,它是定義在方法類面的內部類,它的作用範圍也僅限於方法內。
  • 3、匿名內部類,