什麼是內部類?內部類的作用

  1. 在java語言中,可以吧一個類定義到另外一個類的內部,在類裏面的這個類就叫內部類,外面的類就叫外部類。在這情況下,這個內部類可以看做外部類的一個成員。還有一種類被稱爲頂層類,指的是類定義代碼不嵌套在其他類定義中的類。
  2. 需要注意的是嵌套類與內部類類似,只是嵌套類是C++的說法。 內部類可以分爲多種、;主要一下4中:靜態內部類,成員內部類,局部內部類,匿名內部類
  3. 代碼
    class outerClass{
    static class innerClass{} //靜態內部類
    }
    class outerClass{
    class innerClass{} //成員內部類
    }
    class outerClass{
    public void menberFunction{
    static class innerClass{} /局部內部類
    }
    }
    public class MyFrame extends Frame{//外部類
    public MyFrame(){
    addWindowsLister(new WindowsAdapter()){ //匿名內部類
    public void windowsClosing(WindowEvent e){
    dispose(); System.exit(0);
    }
    });
    }
    }
    4.總結代碼
    靜態內部類是指被聲明爲static的內部類,他可以不依賴內部類而實例,而通常的內部類需要實例化外部類,從而實例化。靜態內部類不可以有與外部類有相同的類名。不能訪問外部類的普通成員變量,但是可以訪問靜態成員變量和靜態方法(包括私有類型)
    一個 靜態內部類去掉static 就是成員內部類,他可以自由的引用外部類的屬性和方法,無論是靜態還是非靜態。但是不可以有靜態屬性和方法、
    局部內部類 就是定義在一個代碼塊的內類,他的作用範圍是所在代碼塊,是內部類中最少使用的一類型。局部內部類跟局部變量一樣,不能被public ,protected,private以及static修飾,只能訪問方法中定義final類型的局部變量。
    匿名內部類是一種沒有類名的內部類,不使用class,extends,implements,沒有構造函數,他必須繼承其他類或實現其他接口。匿名內部類的好處是使代碼更加簡潔,緊湊,但是帶來的問題是易讀性下降。他一般應用於GUI編程來實現時間處理等 。
    在使用匿名內部類時,需要牢記以下幾個原則。
    1》內部類沒有構造方法
    2》匿名內部類不能定義靜態成員,方法和類
    3》匿名內部類不能是public protected private static
    4》只能創建匿名內部類的一個實例
    5》一個匿名內部類可以在new後面,這個匿名類必須繼承一個父類或實現接口
    6》因爲匿名內部類爲局部內部類,所以局部內部類的所有限制都對其生效
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章