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