1.内部クラスとは何ですか?
この定義における「Javaプログラミング」:
内部クラス(また、埋め込み型としても知られる)、他のクラスの一つの内部に定義されています。ここでの例は以下のとおりです。
public class showInnerClass{
private int date;
public void m(){
InnerClass instance = new InnerClass();
}
class InnerClass{
public void mi(){
data++;
m();
}
}
}
showInnerClassクラス内で定義さInnerClassクラス。次のような特徴があります:
(1)内部クラスリファレンスは、データとその外側のクラスのメソッド、このような理由のために、クラス内のコンストラクタに渡された外部のクラスを参照する必要はありませんが含まれ、内部クラスは、プログラムを簡単に作ることができます。
唯一の外側のクラスのクラス内の作業を支持する(2)。外部クラス名」のように彼の名前をコンパイルした後
$ InnerClass.class。
(3)内部クラスは、その意味は、クラスの他のメンバーと同じで、プライベートの保護、publicとして宣言することができます。
(4)内部クラスがstaticとして宣言することができ、あなたはアクセス静的内部クラス、静的な内部クラスの外側のクラスのクラス名を使用することができますが、クラス外の非静的メンバにアクセスすることはできません。
(5)は、しばしばクラス外部クラス内のオブジェクトを作成するだけでなく、別のクラスからのオブジェクトクラス内に作成することができます。非静的な内部クラスの場合は、最初に外部クラスのインスタンスを作成し、クラス内のオブジェクトを作成するには、次の構文を使用しなければなりません。
外部内部クラスのクラスのクラス内部オブジェクト名= .new内部、外部オブジェクトクラス()。
内部クラスが静的である場合には(6)は、次の構文オブジェクトを使用して作成することができます。
外側のクラスの内部クラスの内部クラス名=新しいクラス・オブジェクト内の外部クラス();
2.なぜ我々は内部クラスが必要なのでしょうか?
なぜそれを使用して、何か以前にも達成することができ学んだ何かを持つクラスの内部で達成すべき:一部の人々は問題を抱えていますか?この問題は、環境からの粗いそれの観点から説明することができます。いくつかの場所では、より便利になり、クラス内のメソッドを使用します。
3.匿名クラス
、匿名クラスは、名前のないのサブクラスです。名前がないので、それはコードより簡潔にすることができます。。例えば
銀行は、次のコードを持つクラスのオブジェクトは、銀行のサブクラスを作成します。
new Bnak(){
...类体
}
私たちは、このなりますが、より簡潔なオブジェクトのサブクラスを作成していることがわかります。しかし、限界もあり、最初の使用です。あなたは、名前のないので、この第二のカテゴリーを使用することはできません。