[Java 編程思想]第十章

內(nèi)部類

定義:每個(gè)內(nèi)部類都能獨(dú)立地繼承一個(gè)(接口的)實(shí)現(xiàn),所以無論外圍類是否已經(jīng)繼承了某個(gè)(接口的)實(shí)現(xiàn),對于內(nèi)部類都沒有影響。

特性

  • 內(nèi)部類可以用多個(gè)實(shí)例,每個(gè)實(shí)例都有自己的狀態(tài)信息,并且與其他外圍對象的信息相互獨(dú)立。
  • 在單個(gè)外圍類中,可以讓多個(gè)內(nèi)部類以不同的方式實(shí)現(xiàn)同一個(gè)接口,或者繼承同一個(gè)類。
  • 創(chuàng)建內(nèi)部類對象的時(shí)刻并不依賴于外圍類對象的創(chuàng)建。
  • 內(nèi)部類提供了更好的封裝,除了該外圍類,其他類都不能訪問。

例如

      public class OuterClass {
            private String name;
            private int age;
            public String getName() {
                return name;
            }
            public void setName(String name) {
                this.name = name;
            }            public int getAge() {
                return age;
            }
            public void setAge(int age) {
                this.age = age;
            }
            public class InnerClass {
                public InnerClass() {
                    name = "chenssy";
                    age = 23;
                }
                public void display() {
                    System.out.println("name:" + getName() + "   ;age:" + getAge());
                }
            }
            public static void main(String[] args) {
                OuterClass outerClass = new OuterClass();
                OuterClass.InnerClass innerClass = outerClass.new InnerClass();
                innerClass.display();
            }
        }

編譯:內(nèi)部類是個(gè)編譯時(shí)的概念,一旦編譯成功后,它就與外圍類屬于兩個(gè)完全不同的類(當(dāng)然他們之間還是有聯(lián)系的)。對于一個(gè)名為OuterClass的外圍類和一個(gè)名為InnerClass的內(nèi)部類,在編譯成功后,會(huì)出現(xiàn)這樣兩個(gè)class文件:OuterClass.class和OuterClass$InnerClass.class

類別內(nèi)部類主要分為成員內(nèi)部類、局部內(nèi)部類、匿名內(nèi)部類、靜態(tài)內(nèi)部類

注意

  • 第一:成員內(nèi)部類中不能存在任何static的變量和方法;
  • 第二:成員內(nèi)部類是依附于外圍類的,所以只有先創(chuàng)建了外圍類才能夠創(chuàng)建內(nèi)部類。

靜態(tài)內(nèi)部類:
使用static修飾的內(nèi)部類稱之為靜態(tài)內(nèi)部類。
1、 它的創(chuàng)建是不需要依賴于外圍類的。
2、 它不能使用任何外圍類的非static成員變量和方法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第一章 對象導(dǎo)論 對象具有狀態(tài)、行為和標(biāo)識。這意味著每一個(gè)對象都可以擁有內(nèi)部數(shù)據(jù)和方法,并且每一個(gè)對象都可以唯一地...
    niaoge2016閱讀 1,037評論 0 0
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,679評論 18 399
  • 多態(tài) 任何域的訪問操作都將有編譯器解析,如果某個(gè)方法是靜態(tài)的,它的行為就不具有多態(tài)性 java默認(rèn)對象的銷毀順序與...
    yueyue_projects閱讀 1,091評論 0 1
  • 一:java概述:1,JDK:Java Development Kit,java的開發(fā)和運(yùn)行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,812評論 0 11
  • 垃圾回收機(jī)制 比較好的文章: JVM 優(yōu)化經(jīng)驗(yàn)總結(jié) JVM調(diào)優(yōu)總結(jié) 1??可回收對象算法 目前查看對象是否需要回收...
    Rinoux閱讀 824評論 0 0

友情鏈接更多精彩內(nèi)容