Javaにおける内部類の使用方法の実戦事例分析


本論文の実例は、Javaにおける内部クラスの使用方法を説明する。皆さんに参考にしてあげます。具体的には以下の通りです。
一点の目
内部クラスの使用については、3つの状況に分けて検討する。
1外部クラスの内部で内部クラスを使用する
2外部類以外に非静的内部類を使用する
3外部類以外に静的内部類を使用する
二外部類内部で内部類を使用する
直接に内部クラスの名前で変数を定義し、newで内部ビルダーを呼び出してインスタンスを作成することができます。
静的なメンバが非静的なメンバにアクセスできないので、外部クラスの静的なメンバ(静的な方法および静的な初期化ブロックを含む)に非静的な内部クラスを使用しないでください。
三外部類以外に非静的内部類を使用する
1点目
prvate修飾の内部類は外部類内部でのみ使用できます。外部クラス以外で非静的内部クラスを使用するには、他の修飾子を使用する必要があります。
アクセス制御子の内部クラスを省略します。外部クラスと同じパッケージにある他のクラスのみにアクセスできます。
protectedで修飾された内部クラス:外部クラスと同じパッケージにある他のクラスと外部クラスのサブクラスにアクセスできます。
public修飾を使用した内部類:任意の場所にアクセスできます。
外部クラス以外の場所で内部クラス(静的および非静的の両方を含む)を定義する変数文法形式は以下の通りです。

OuterClass.InnerClass varName

内部クラスのフルネームはOuterClass.Inneraclassであるべきです。外部クラスにパケット名がある場合は、パケット名プレフィックスを追加します。
外部クラス以外の場所で非静的な内部クラスを使用してオブジェクトを作成する文法は以下の通りです。

OuterInstance.new InnerConstructor()
2コード
CreateInner Instance.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");
  }
}

CreateInner Instance.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運転
テスト情報
ハロー
6説明
非静的な内部クラスInオブジェクトとSubClassオブジェクトは、両方のオブジェクトを作成するときに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関連の内容に興味がある読者は当駅のテーマを調べてもいいです。「Javaは対象プログラムに向かって入門と階段教程を設計します。」、「Javaデータ構造とアルゴリズム教程」、「Java操作DOMノード技術のまとめ」、「Javaファイルとディレクトリの操作テクニックのまとめ」、「Javaキャッシュ操作テクニックのまとめ
本論文で述べたように、皆さんのjavaプログラムの設計に役に立ちます。