內部類

1.創建內部類#

直接在另一個類內部實現一個類,這個類與外部類是相互獨立的,并且可以隨意的調用外部類的成員方法和成員變量。

2.使用.this與.new#

    public class Inner {
        public Pacle9 outer() {
            return Pacle9.this;
            //使用this返回外部類對象
        }

        public void f(){
            System.out.println("fi");
        }
    }

    public Inner inner() {
        return new Inner();
    }
    public static void main(String args[]){
        Pacle9 p = new Pacle9();
        Pacle9.Inner i = p.inner();
        Pacle9.Inner i1 = p.new Inner();
        //使用.new關鍵字創建內部類對象
        i1.f();
        i.outer().f();
    }
}

3.方法和作用域內內部類#

內部類可以定義在方法和作用域內如"{}"內或者"if(exp){}"內。

4.匿名內部類#

public class Pacle10 {
    public Contents contents(final float dest, final String cont) {
        //內部類中使用常量
        //返回一個匿名內部類
        return new Contents() {
            private int cost;
            private String c = cont;
            {
                //相當于構造函數
                cost = Math.round(dest);
                if(cost > 100)
                    System.out.println("ok!");
            }
            @Override
            public int value() {
                return cost;
            }
        };
    }
    public static void main(String args[]){
        Pacle10 p = new Pacle10();
        Contents c = p.contents((float) 109.5, "hehe");
        System.out.print(c.value());
    }
}

5.嵌套類#

在內部類之前加static關鍵字,則為嵌套內部類,與內部類區別為使用.this不能獲得外部類的引用。內部類在構建時會自動的與外部類關聯,嵌套類沒有這種關聯機制。

6.內部類的意義#

實現了多繼承。通過在一個類內部實現多個繼承自不同抽象類的類,即可以實現這個類的多繼承。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 今天整理一下內部類,其中包含了內部類的特殊形式,對比普通類有什么區別和作用,內部類和外圍類之間的聯系,內部類的擴展...
    _小二_閱讀 637評論 0 3
  • Java 內部類 分四種:成員內部類、局部內部類、靜態內部類和匿名內部類。 1、成員內部類: 即作為外部類的一個成...
    ikaroskun閱讀 1,251評論 0 13
  • 內部類是一種非常有用的特性,因為它允許你把一些邏輯相關的類組織在一起,并控制位于內部的類的可視性。 如果想從外部類...
    Lemon_Home閱讀 226評論 0 0
  • “也沒看那些信奉努力就能成功的人過的有多好啊?” 這是2014年我剛剛自由職業的時候,我大學同學說過的一句話。一直...
    小亮老師1980閱讀 463評論 0 0
  • 自由書寫-第1篇 我在耶路撒冷的哭墻:感受到一種力量,淚如洪流;我在黃河以南:觸目蚌殼龍虎圖、遙想伏羲觀天象,凝視...
    梵菂閱讀 237評論 0 4