Java言語で、クラスは、このクラスは、内部クラスと呼ばれているクラス別のクラスの内部に定義された外部クラス外部クラスを呼び出すことができます。この場合、内部クラスは、クラスの外側部材(同様の特性及びメソッドを有するクラス)として見ることができます。別のクラスは、上部(最上位)クラスと呼ばれ、クラス定義は、別のクラス定義内にネストされていないクラスコードを指します。
静的な内部クラス、内部クラスのメンバー、ローカル内部クラスと匿名内部クラス:内部クラスは、次の4つです。
1、静的な内部クラス
クラスOuterClass {
静的 クラス InnerClass {} // 静的内部クラス
}
静的として宣言内部静的型内部クラスを指し、それはクラスのインスタンス外部に頼ることはできないが、クラスの内部クラスが外部インスタンス化されるインスタンス化する通常必要がインスタンス化されます。静的内部クラスは、外側のクラスと同じ名前を持つことができない、通常のメンバ変数は、クラス外部からアクセスすることができず、唯一のクラスの静的メンバと(プライベート型を含む)静的メソッドの外側にアクセスすることができます。
内部クラスの2、メンバー
クラスOuterClass {
クラス InnerClass {} // 部材内部クラス(通常の内部)
}
静的内部クラスは、あなたが「静的」キーワードを削除する場合は、内部クラスのメンバーになります。このクラスのメンバーは自由に外部クラスを指すことができる内部クラス、プロパティおよびメソッドの内部における静します。クラスの外では、インスタンス化された後にのみ、内部クラスをインスタンス化することができます。非静的内部クラスは、静的メンバを持つことができないことに留意すべきです。
図3に示すように、部分的な内部クラス
クラスOuterClass {
公共 ボイドmenberFunction(){
クラス InnerClass {} // ローカルインナークラス
}
}
クラス・コード・ブロック内で定義された局所的な内部クラスを指し、コードは、使用する少なくとも内部クラス型であり、その範囲をブロックします。ローカル変数として部分的な内部クラスは、プライベートおよび静的な、保護、公共変更することはできません。静的内部クラスのために、マイナス静的メソッドまたは静的クラス初期化コードセグメントにその外側に定義され、それらの宣言「静的」キーワードは、内部静的クラスを局在なります。外部クラスの初期化コードにインスタンスその方法または実施例を定義するクラスのメンバーは、ローカル内部クラスになります。ローカル静的な内部クラスの静的内部クラスの基本的な特性。内部ローカル内部クラスのクラスの基本特性。
4、匿名内部クラス
パブリック クラスをMyFrameの延びフレーム{ // 外部クラス
パブリックMyFrameとの(){
addWindowListener(新しい新しい WindowAdapterをAN){ // 匿名の内部クラス
公共 ボイドwindowClosing(のWindowEvent E){
(廃棄)
でSystem.exit( 0 );
}
}
}
}
いいえ匿名内部クラスは、クラス名の内部クラスではありません、キーワードのクラスを使用していない、拡張、および実装、コンストラクタ、それは(拡張)他のクラスを継承するか、他のインタフェースを実装する必要があります。匿名内部クラスの一般的な利点は、コードがより簡潔コンパクトですが、問題は減少した読みやすさに起因しています。一般的にはGUI(グラフィカルユーザインタフェース)実施プログラミングイベント処理に使用されます。