Javaのローカル内部クラス

1008 ワード

1 じっと見つめる
内部クラスをメソッドで定義すると、この内部クラスはローカル内部クラスであり、ローカル内部クラスはメソッドでのみ有効です.
ローカル内部クラスは外部クラスのメソッド以外では使用できないため,ローカル内部クラスもstatic修飾子修飾に適合する制御を使用することはできない.
ローカル内部クラスで変数を定義したり、インスタンスを作成したり、子クラスを派遣したりする必要がある場合は、ローカル内部クラスが存在するメソッドでのみ実行できます.
二 コード#コード#
public class LocalInnerClass
{
   public static void main(String[] args)
   {
      //        
      class InnerBase
      {
         int a;
      }
      //           
      class InnerSub extends InnerBase
      {
         int b;
      }
      //           
      InnerSub is = new InnerSub();
      is.a = 5;
      is.b = 8;
      System.out.println("InnerSub   a b     :"
         + is.a + "," + is.b);
   }
}

三 うんてん
InnerSubオブジェクトのaおよびbインスタンス変数は、5,8です.
四 説明
コンパイルが完了すると、LocalInnerClass.class、LocalInnerClass$1 InnerBase.class、LocalInnerClass$1 InnerSub.classの3つのファイルが生成されます.ローカル内部クラスに数字があるのは、同じクラスに同じ名前のローカル内部が2つ以上ある可能性があるからです(異なる方法).
ローカル内部の役割ドメインは小さすぎて多重化に不利であるため,開発ではローカル内部クラスの使用は少ない.