Java 基礎知識-內(nèi)部類

內(nèi)部類作用:

1.實現(xiàn)數(shù)據(jù)的隱藏,實現(xiàn)了封裝,類可以定義為private或者protected, 外部不能訪問。

2.如果兩個類之間的耦合性特別強,可以使用內(nèi)部類,增強類之間的使用關系

3.內(nèi)部類可以使用外部類的成員變量和成員方法等所有元素,包括私有的

4.內(nèi)部類創(chuàng)建方法 ObjectA A = new ObjectA(); ObjectB B = A.new ObjectB();

5. 內(nèi)部類實現(xiàn)了代碼的簡潔性

6.可以實現(xiàn)多重繼承,彌補了JAVA語言多繼承缺點,這個特點非常重要,個人認為它是內(nèi)部類存在的最大理由之一。正是由于他的存在使得Java的繼承機制更加完善。大家都知道Java只能繼承一個類,它的多重繼承在我們沒有學習內(nèi)部類之前是用接口來實現(xiàn)的。但使用接口有時候有很多不方便的地方。比如我們實現(xiàn)一個接口就必須實現(xiàn)它里面的所有方法。而有了內(nèi)部類就不一樣了。它可以使我們的類繼承多個具體類或抽象類。大家看下面的例子。

7?避免修改接口而實現(xiàn)同一個類中兩種同名方法的調(diào)用。

8.內(nèi)部類是延時加載的,只有內(nèi)部類被調(diào)用時候才會加載;

靜態(tài)內(nèi)部類與內(nèi)部類區(qū)別

1. 靜態(tài)內(nèi)部類不持有外部類的引用,不能訪問外部類的元素

2.創(chuàng)建方法不同 ObjectB B = new ObjectA.ObjectB();

3.另外因為靜態(tài)嵌套類是依附于外部類而非外部類對象的,所以不同的外部類對象共享一個靜態(tài)嵌套類,這一點與內(nèi)部類不同,可以用來包裝方法,實現(xiàn)工廠模式。

4.生成一個靜態(tài)內(nèi)部類不需要外部類成員:這是靜態(tài)內(nèi)部類和成員內(nèi)部類的區(qū)別。靜態(tài)內(nèi)部類的對象可以直接生成:Outer.Inner in = new Outer.Inner();而不需要通過生成外部類對象來生成。這樣實際上使靜態(tài)內(nèi)部類成為了一個頂級類(正常情況下,你不能在接口內(nèi)部放置任何代碼,但嵌套類可以作為接口的一部分,因為它是static 的。只是將嵌套類置于接口的命名空間內(nèi),這并不違反接口的規(guī)則)

public interface Outer {public static final class inner{ ? ? ? ?void dosth() {System.out.println("I'm a inner class in interface");}}}

5.靜態(tài)內(nèi)部類,也是延時加載的只有靜態(tài)方法被調(diào)用時候才會加載此類;

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

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

  • Java 內(nèi)部類 分四種:成員內(nèi)部類、局部內(nèi)部類、靜態(tài)內(nèi)部類和匿名內(nèi)部類。 1、成員內(nèi)部類: 即作為外部類的一個成...
    ikaroskun閱讀 1,358評論 0 13
  • 1、一個".java"源文件中是否可以包括多個類(不是內(nèi)部類)?有什么限制?答:可以有多個類,但只能有一個publ...
    岳小川閱讀 1,026評論 0 2
  • 注意注意?。?!前排提示?。?!本篇文章過長,最好收藏下來慢慢看,如果你之前對內(nèi)部類不是很熟悉,一次性看完,大概你會懵...
    Sharember閱讀 912評論 0 10
  • 一:java概述: 1,JDK:Java Development Kit,java的開發(fā)和運行環(huán)境,java的開發(fā)...
    慕容小偉閱讀 1,953評論 0 10
  • 模塊化:將各種負責處理不同功能的代碼封裝在不同的類型中,將各種相似功能的類型封裝在py模塊中,通過模塊和模塊之間的...
    依舊丶森閱讀 747評論 0 0

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