Java的內(nèi)部類是指一個(gè)類被定義在另一個(gè)類的內(nèi)部。根據(jù)定義的位置和訪問權(quán)限的不同,內(nèi)部類可以分為四種:成員內(nèi)部類、靜態(tài)內(nèi)部類、方法內(nèi)部類和匿名內(nèi)部類。
內(nèi)部類的訪問權(quán)限
- 成員內(nèi)部類和靜態(tài)內(nèi)部類可以使用任意訪問權(quán)限修飾符,包括public、protected、默認(rèn)和private。
- 方法內(nèi)部類只能使用默認(rèn)訪問權(quán)限,即不加任何訪問修飾符。
使用public修飾的內(nèi)部類
內(nèi)部類使用public修飾時(shí),可以被外部類以及其他外部類所訪問。它具有最高的訪問權(quán)限,可以被其他包中的類所訪問。
使用public修飾的內(nèi)部類示例:
public class OuterClass {
public class InnerClass {
}
}
在其他類中訪問public修飾的內(nèi)部類:
public class OtherClass {
public static void main(String[] args) {
OuterClass.InnerClass innerClass = new OuterClass().new InnerClass();
}
}
在上述示例中,InnerClass被public修飾,可以在OtherClass中被訪問。使用new關(guān)鍵字創(chuàng)建OuterClass的實(shí)例,然后通過實(shí)例調(diào)用new InnerClass()創(chuàng)建InnerClass的實(shí)例。通過訪問內(nèi)部類的實(shí)例,可以使用其定義的方法和訪問其屬性。
當(dāng)然,在實(shí)際開發(fā)中,一般并不會(huì)使用public修飾內(nèi)部類。因?yàn)閮?nèi)部類的主要作用是為了實(shí)現(xiàn)某些特定的功能或者限制其在外部的使用。而通過使用public修飾內(nèi)部類,則會(huì)導(dǎo)致內(nèi)部類的實(shí)例對(duì)象可以在外部類外被訪問,違背了內(nèi)部類的設(shè)計(jì)初衷。
另外,需要注意的是在其他包中訪問public修飾的內(nèi)部類時(shí),由于內(nèi)部類不能獨(dú)立存在,所以需要通過外部類的實(shí)例來(lái)創(chuàng)建內(nèi)部類的實(shí)例。
綜上所述,Java內(nèi)部類可以使用public修飾,但是在實(shí)際開發(fā)中一般不建議這么做,因?yàn)檫@樣會(huì)破壞內(nèi)部類的封裝性。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
相關(guān)推薦
2.9.2 非public的成員類2.9.3 局部類和匿名類2.9.4 嵌套的接口2.10 選擇使用不同類型的類2.10.1 從VectorEnumerator到匿名類2.11 容器和內(nèi)部類層次的基本原理
發(fā)表于 06-23 18:16
的 run 函數(shù)換一個(gè)名字,但這種辦法對(duì)于一個(gè)開發(fā)到中途的應(yīng)用來(lái)說是不可取的。那么就可以用這個(gè)例子中的辦法用外部類的類名加上 this 引用來(lái)說明要調(diào)用的是外部類的方法 run。例3
發(fā)表于 10-21 14:38
理解接口的作用,理解接口和實(shí)現(xiàn)接口的類的關(guān)系,掌握聲明接口、一個(gè)類實(shí)現(xiàn)多個(gè)接口的聲明和使用方法。理解內(nèi)嵌類型的概念,掌握聲明內(nèi)部類的方法。熟悉Java語(yǔ)言包和實(shí)用包中的常用類。
發(fā)表于 11-23 11:52
?0次下載
可以將一個(gè)類的定義放在另一個(gè)類的定義內(nèi)部,這就是內(nèi)部類。 內(nèi)部類是一個(gè)非常有用的特性但又比較難理解使用的特性(鄙人到現(xiàn)在都沒有怎么使用過內(nèi)部類
發(fā)表于 09-27 14:59
?0次下載
一。內(nèi)部類基礎(chǔ) 二。深入理解內(nèi)部類 三。內(nèi)部類的使用場(chǎng)景和好處 四。常見的與內(nèi)部類相關(guān)的筆試面試題 若有不正之處,請(qǐng)多諒解并歡迎批評(píng)指正。 一。內(nèi)部
發(fā)表于 09-27 16:15
?0次下載
1、學(xué)習(xí)Java可以做網(wǎng)站
Java可以用來(lái)編寫網(wǎng)站,現(xiàn)在很多大型網(wǎng)站都用Jsp寫的,JSP全名Java Server Pages
發(fā)表于 02-15 14:07
?2789次閱讀
簡(jiǎn)介 為什么要持有外部類 實(shí)例:持有外部類 實(shí)例:不持有外部類 實(shí)例:內(nèi)存泄露 不會(huì)內(nèi)存泄露的方案 簡(jiǎn)介 「說明」 本文介紹 Java 內(nèi)部類
發(fā)表于 10-08 16:32
?973次閱讀
public修飾的類、類屬變量及方法,包內(nèi)及包外的任何類均可以訪問;任何情況下都可以訪問;如果一個(gè)類、類屬變量及方法沒有用任何修飾符,則其訪
發(fā)表于 02-28 14:35
?6618次閱讀
非靜態(tài)內(nèi)部類會(huì)持有外部類,如果有地方引用了這個(gè)非靜態(tài)內(nèi)部類,會(huì)導(dǎo)致外部類也被引用,垃圾回收時(shí)無(wú)法回收這個(gè)外部類(即使外
發(fā)表于 05-18 16:09
?1130次閱讀
是一個(gè)獨(dú)立的程序類了。需要注意,static定義的不管是類還是方法只能夠訪問static成員, 所以static定義的內(nèi)部類只能夠訪問外部?jī)?nèi)中的static屬性和方法 ; public class
發(fā)表于 10-10 16:08
?551次閱讀
在普通類中使用內(nèi)部結(jié)構(gòu) 不多說,先上個(gè)代碼 Outer類里面有個(gè)內(nèi)部類Inner public class Outer { private String msg = "哈哈" ; //只能在類
發(fā)表于 10-10 16:26
?421次閱讀
static 是Java的一個(gè)關(guān)鍵字,可以用來(lái)修飾成員變量、修飾成員方法、構(gòu)造靜態(tài)代碼塊、實(shí)現(xiàn)靜態(tài)導(dǎo)包以及實(shí)現(xiàn)靜態(tài)內(nèi)部類,下面我們來(lái)分別介紹
發(fā)表于 10-11 15:26
?478次閱讀
CloneNotSupportedException ; 你敢說你沒用過這些方法?如果你用過,那你就是一定用過不是Java語(yǔ)言編寫的方法。 答案就是【native】關(guān)鍵詞,用此關(guān)鍵詞修飾的方法,多數(shù)情況就不是
發(fā)表于 10-11 15:29
?499次閱讀
一下Java程序的基本結(jié)構(gòu)。一個(gè)Java程序可以包含多個(gè)類,但是只能有一個(gè)公共的類作為主類。這個(gè)主類必須包含一個(gè)特殊的方法,即main方法,它是程序的入口點(diǎn)。當(dāng)程序被執(zhí)行時(shí),首先執(zhí)行main方法。 根據(jù)
發(fā)表于 11-28 16:15
?5616次閱讀
在Java編程語(yǔ)言中,類的修飾符對(duì)類的可見性起到了重要的作用。public、private、protected和默認(rèn)訪問修飾符都用于確定類的可見性。公共類(
發(fā)表于 11-28 16:29
?928次閱讀
評(píng)論