5.内部クラス

内部クラス

例えば:

    class A {                   //外部类
        class B {  }            //内部类
}

上記クラス・コンパイラは、2つの別々のカテゴリを生成した後:A.class A $ B.class
内部クラスは、外部クラスのprivateメンバにアクセスすることができます

内部クラスに焦点を当てます:
  1. 内部クラスのメンバー:クラスは、例えば、上記の例はれるクラスがある
    内部クラス・オブジェクトを作成するために外部オブジェクトを作成するが、その後、Aが新しいAを()=(内部クラスのオブジェクトを作成し 、AB、B = a.new Bを() ;)

  2. 静的内部クラス:内部クラスstatic修飾子が
    直接内部クラスのオブジェクトを作成することができ①②クラス外部のみアクセス静的メンバ缶:特長
    内部クラス・オブジェクトを作成する:AB B =新しいABを() 。
  3. ローカル内部クラス:クラス外の方法の中のメンバークラスの定義
    範囲:コードブロックの終わりがどこに、定義から始まり
    ます:①の方法で記述されたオブジェクトの文、ローカル内部クラスの作成を作成する②地元あなたは、クラスのメソッドの外側を呼び出すとき(1.8以上が書く、プラスコードに基づいて仮想マシンをデフォルトすることはできません)、内部クラスは、だけでなく、アクセスする外部クラスのローカル変数を外部クラスのメンバーではないだけにアクセスすることができますが、それは、最終的な(定数)で結合されなければなりません
main:A a = new A(); 
a.method();  //注意,应将局部类的创建在方法内
class A { 
public void method() {
    class B {   }
}
}
  1. 匿名内部クラス:内部の特殊なタイプです
    条件:①あなたは、このクラスのオブジェクトを作成する場合にのみときに、クラス②インタフェースや継承を実装する
    ような:IAインタフェース1に主な機能を実現します:
IA a = new IA(){     //直接实现该几口,没有要实现该接口的类名
        @Override
        public void method() { }//实现该接口的方法

おすすめ

転載: www.cnblogs.com/linanana/p/12075387.html