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