大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) Java內(nèi)部類的介紹及作用

Java內(nèi)部類的介紹及作用

更新時(shí)間:2022-08-29 10:58:30 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1661次

Java中的內(nèi)部類是什么?

Java內(nèi)部類在另一個(gè)類(也稱為外部類)中聲明,并且可以訪問外部類的私有成員。編譯器生成一個(gè)作為外部類成員的類,并且正是這個(gè)生成的類可以訪問創(chuàng)建它的范圍內(nèi)的私有變量或方法(例如,在另一個(gè)方法內(nèi))。

靜態(tài)嵌套內(nèi)部類與其他靜態(tài)成員類似,因?yàn)樗鼈儫o法訪問外部類的實(shí)例變量。相反,非靜態(tài)內(nèi)部類可以訪問外部類的實(shí)例變量,因此能夠創(chuàng)建外部類的實(shí)例。

Java 內(nèi)部類的優(yōu)缺點(diǎn)

Java 中的內(nèi)部類比傳統(tǒng)類提供了許多好處。它們可用于訪問外部類的私有成員,可用于創(chuàng)建外部類的實(shí)例,還可用于創(chuàng)建匿名內(nèi)部類。

但是,在 Java 中使用內(nèi)部類也有一些缺點(diǎn)。它們會(huì)使您的代碼更難閱讀和調(diào)試,并且會(huì)增加代碼的整體復(fù)雜性。

內(nèi)部類的類型

內(nèi)部類分為四種類型:靜態(tài)、非靜態(tài)、本地和匿名。

靜態(tài)內(nèi)部類

這些是最簡(jiǎn)單的內(nèi)部類。靜態(tài)內(nèi)部類是在類內(nèi)部聲明并標(biāo)記為靜態(tài)的那些。需要注意的是,這些類只能使用外部類的實(shí)例來訪問。您可以利用靜態(tài)嵌套類將相關(guān)類組合在一起。

非靜態(tài)內(nèi)部類

顧名思義,非靜態(tài)內(nèi)部類與外部類的實(shí)例相關(guān)聯(lián)。外部類的所有成員(變量和方法)都可以從這些類中訪問。

本地內(nèi)部類

本地內(nèi)部類在方法中定義。它們可以訪問封閉類的所有成員(變量和方法),但不能從定義它們的方法之外實(shí)例化它們。本地定義的內(nèi)部類只能在其定義的方法內(nèi)實(shí)例化。

方法本地內(nèi)部類只能在定義它的方法內(nèi)訪問,并且不能被定義它的方法之外的任何其他代碼引用。方法局部?jī)?nèi)部類可以從封閉范圍訪問局部變量(包括最終變量)。

匿名內(nèi)部類

沒有名稱的內(nèi)部類也稱為匿名內(nèi)部類。匿名內(nèi)部類的聲明和實(shí)例化同時(shí)發(fā)生。匿名內(nèi)部類不能有顯式構(gòu)造函數(shù),就像所有本地內(nèi)部類一樣。當(dāng)您必須只使用一次本地內(nèi)部類時(shí),匿名內(nèi)部類很有用。

Java 內(nèi)部類的要點(diǎn)

以下是在 Java 中使用內(nèi)部類時(shí)要記住的一些重要事項(xiàng):

內(nèi)部類可以聲明為公共的、私有的或受保護(hù)的。

內(nèi)部類可以擴(kuò)展任何類并實(shí)現(xiàn)任何接口。

需要注意的是,如果一個(gè)內(nèi)部類已經(jīng)被標(biāo)記為靜態(tài),它就不能訪問外部類的非靜態(tài)成員。它可以訪問外部類的靜態(tài)成員。

如果沒有外部類的實(shí)例,就不能創(chuàng)建內(nèi)部類或嵌套類的實(shí)例。

內(nèi)部類可用于編寫更模塊化和可重用的代碼。

如何在 Java 中編寫內(nèi)部類

以下代碼示例說明了如何在 Java 中實(shí)現(xiàn)內(nèi)部類:

公共類 MyOuterClass {
  公共類 MyInnerClass {
    公共無效顯示(){
      System.out.println("內(nèi)部類");
    }
  }
  公共靜態(tài)無效主要(字符串[]參數(shù)){
    MyOuterClass objOuterClass = new MyOuterClass();
    MyOuterClass.MyInnerClass objInnerClass = objOuterClass.new MyInnerClass();
    objInnerClass.display();
  }
}

以下代碼清單說明了如何在 Java 中實(shí)現(xiàn)靜態(tài)內(nèi)部類:

導(dǎo)入 java.util.*;
類 MyOuterClass {
    私有靜態(tài)無效方法A()
    {
        System.out.println("MyOuterClass 的內(nèi)部方法A");
    }
    靜態(tài)類 MyInnerClass { 
        公共靜態(tài)無效方法B()
        {
            System.out.println("MyInnerClass 的內(nèi)部方法B");
            方法A();
        }
    }
}
公共類 InnerClassDemo {
    公共靜態(tài)無效主(字符串參數(shù) [])
    {
        MyOuterClass.MyInnerClass obj = new MyOuterClass.MyInnerClass();
        obj.methodB();
    }
}

以上就是關(guān)于“Java內(nèi)部類的介紹及作用”的介紹,大家如果想了解更多相關(guān)知識(shí),可以關(guān)注一下動(dòng)力節(jié)點(diǎn)的Java基礎(chǔ)教程,里面的課程內(nèi)容細(xì)致全面,適合沒有基礎(chǔ)的小伙伴學(xué)習(xí),希望對(duì)大家能夠有所幫助。

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 亚洲精品香蕉一区二区在线观看 | 亚洲高清在线视频 | 五月天激情在线 | 一区二区三区在线播放 | 亚洲国产精久久久久久久 | 亚洲不卡| 国内精品久久久久影院不卡 | 亚洲欧美小视频 | 免费观看成人www精品视频在线 | 97色资源| 欧美高清成人 | 亚洲国产精品日韩一线满 | 欧美开嫩苞实拍视频在线观看 | 毛片毛片毛片毛片 | 国产精品久久久久久久9999 | 男人午夜影院 | 国产精品一区二区三区免费视频 | 色色色资源站 | 欧美特级特黄a大片免费 | 乱人伦中文视频在线 | 精品国产品香蕉在线 | 日韩欧美一区二区三区四区 | 国产成人一区二区视频在线观看 | 亚洲视频免费在线观看 | 人成精品视频三区二区一区 | 夜鲁夜鲁夜鲁在线观看福利 | 黄色生活毛片 | 日韩中文字幕在线观看 | 免费两性的视频网站 | 久青草国产在线视频_久青草免 | 日日躁夜夜躁狠狠天天 | 欧美午夜在线播放 | 桃色成人精品网站 | 色www永久免费 | 亚洲欧美精品成人久久91 | 中文字幕免费视频精品一 | 亚洲精品成人中文网 | 亚洲影院中文字幕 | 一区二区三区免费精品视频 | 国产一级aaa全黄毛片 | 日本久久精品视频 |