學習日記(十二)java嵌套類和內部類

來源:互聯網
上載者:User

標籤:java嵌套類

  嵌套類和內部類:在一個類裡邊定義的類叫做嵌套類,其中沒有static修飾的嵌套類是我們通常說的內部類,而被static修飾的嵌套類不常用。有的地方沒有嵌套類和內部類的區分,直接是嵌套類就稱作內部類,沒有嵌套類的說法。而通常我所聽說的基本上都是直接說的內部類,可能這種說法更為常見一些。

  內部類的範圍由裝入它的類的範圍限制,內部類可以訪問外部類的成員,包括private修飾的,因為它被當成了外部類的成員,一個類的成員之間是可以相互訪問的,但是反過來外部類不能訪問內部類的實現細節。

  內部類可以被定義在外部類的任何地方,自然也就包括外部類的方法中,在外部類的方法中定義的內部類稱為局部內部類,反之為成員內部類,只不過通常局部內部類用的不多。

  成員內部類是類的成員,類似類的方法、屬性和構造器等,而局部內部類和匿名內部類不屬於類的成員。

  通常情況,當某個類我們只需要使用一次時,可能會用到匿名內部類,相對來說比較方便。

  static修飾的內部類通常叫做靜態內部類,有時也叫做類內部類,它是類相關而不是對象相關,因此只能訪問外部類的類成員,即也是static修飾的成員。這裡要注意的是,即使是靜態內部類裡邊的執行個體方法也不能訪問外部類的非類成員。

  靜態內部類可以包含靜態成員也可以包含非靜態成員。

  外部類依然不能直接存取靜態內部類的成員,但是可以通過靜態內部類的類名作為調用者來訪問靜態內部類的類成員,也可以通過靜態內部類的對象來訪問非類成員(執行個體成員)。

  java還允許在介面中定義內部類,但是這裡的內部類只能是靜態內部類,預設public static來修飾。

  內部類在外部類以外的地方也可以使用。

  匿名內部類不能定義成抽象類別,匿名內部類不能定義構造器。


學習日記(十二)java嵌套類和內部類

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.