91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中內部類的使用方法

發布時間:2021-09-14 23:18:50 來源:億速云 閱讀:143 作者:chen 欄目:編程語言

本篇內容主要講解“Java中內部類的使用方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java中內部類的使用方法”吧!

一 點睛

分三種情況討論內部類的使用:

1 在外部類內部使用內部類

2 在外部類以外使用非靜態內部類

3 在外部類以外使用靜態內部類

二 在外部類內部使用內部類

可以直接通過內部類的類名來定義變量,通過new調用內部構造器來創建實例。

不要在外部類的靜態成員(包括靜態方法和靜態初始化塊)中使用非靜態內部類,因為靜態成員不能訪問非靜態成員。

三 在外部類以外使用非靜態內部類

1 點睛

private 修飾的內部類只能在外部類內部使用。所以要在外部類以外地方使用非靜態內部類,必須使用其他修飾符。

省略訪問控制符的內部類:只能被與外部類處于同一個包中的其他類所訪問。

使用protected修飾的內部類:可被與外部類處于同一個包的其他類和外部類的子類所訪問。

使用public修飾的內部類:可被任意地方訪問。

在外部類以外的地方定義內部類(包括靜態和非靜態兩種)變量語法格式如下:

OuterClass.InnerClass varName

內部類完整類名應該是OuterClass.InnerClass。如果外部類有包名,則應該增加包名前綴

在外部類以外的地方使用非靜態內部類創建對象的語法如下:

OuterInstance.new InnerConstructor()

2 代碼

CreateInnerInstance.java

class Out{  // 定義一個內部類,不使用訪問控制符,  // 即只有同一個包中其他類可訪問該內部類  class In  {   public In(String msg)   {     System.out.println(msg);   }  }}public class CreateInnerInstance{  public static void main(String[] args)  {   Out.In in = new Out().new In("測試信息");   /*   上面代碼可改為如下三行代碼:   使用OutterClass.InnerClass的形式定義內部類變量   Out.In in;   創建外部類實例,非靜態內部類實例將寄存在該實例中   Out out = new Out();   通過外部類實例和new來調用內部類構造器創建非靜態內部類實例   in = out.new In("測試信息");   */  }}

3 運行

測試信息

4 代碼

SubClass.java

public class SubClass extends Out.In{  //顯示定義SubClass的構造器  public SubClass(Out out)  {   //通過傳入的Out對象顯式調用In的構造器   out.super("hello");  }}

CreateInnerInstance.java

class Out{  // 定義一個內部類,不使用訪問控制符,  // 即只有同一個包中其他類可訪問該內部類  class In  {   public In(String msg)   {     System.out.println(msg);   }  }}public class CreateInnerInstance{  public static void main(String[] args)  {   Out.In in = new Out().new In("測試信息");   /*   上面代碼可改為如下三行代碼:   使用OutterClass.InnerClass的形式定義內部類變量   Out.In in;   創建外部類實例,非靜態內部類實例將寄存在該實例中   Out out = new Out();   通過外部類實例和new來調用內部類構造器創建非靜態內部類實例   in = out.new In("測試信息");   */    SubClass subclass = new SubClass(new Out());  }}

5 運行

測試信息hello

6 說明

非靜態內部類In對象和SubClass對象都必須持有指向Outer對象的引用,區別是創建兩種對象時傳入Out對象的方式不同:當創建非靜態內部類In類的對象時,必須通過Outer對象來調用new關鍵字,當創建SubClass類的對象時,必須使用Outer對象作為調用者來調用In類的構造器。

非靜態內部類的子類不一定是內部類,它可以是一個外部類。但非靜態內部類的子類實例一樣需要保留一個引用,該引用指向其父類所在外部類的對象。也就是說,如果有一個內部類子類的對象存在,則一定存在與之對應的外部類對象。

四 在外部類以外使用靜態內部類

1 點睛

在外部類以外的地方使用靜態內部類創建對象的語法如下:

new OuterClass.InnerConstructer();

2 代碼

class StaticOut{  // 定義一個靜態內部類,不使用訪問控制符,  // 即同一個包中其他類可訪問該內部類  static class StaticIn  {   public StaticIn()   {     System.out.println("靜態內部類的構造器");   }  }}public class CreateStaticInnerInstance{  public static void main(String[] args)  {   StaticOut.StaticIn in = new StaticOut.StaticIn();   /*   上面代碼可改為如下兩行代碼:   使用OutterClass.InnerClass的形式定義內部類變量   StaticOut.StaticIn in;   通過new來調用內部類構造器創建靜態內部類實例   in = new StaticOut.StaticIn();   */  }}

3 運行

靜態內部類的構造器

到此,相信大家對“Java中內部類的使用方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

英山县| 呼玛县| 鹤庆县| 马公市| 绥化市| 东光县| 清原| 资兴市| 金乡县| 临安市| 伊宁市| 延津县| 习水县| 锡林浩特市| 剑河县| 贵南县| 长子县| 会昌县| 贵定县| 泸水县| 错那县| 昆明市| 南投县| 潞城市| 四子王旗| 新昌县| 诸暨市| 尉氏县| 灌云县| 阿鲁科尔沁旗| 江门市| 淮南市| 枣强县| 盐源县| 南召县| 彩票| 长顺县| 依安县| 镇雄县| 天长市| 兴义市|