- 内部クラスには、static修飾子を使用できません。内部クラスは外部クラスのインスタンス内に存在しているためです。
- 内部クラスは、外部クラスのメンバ変数やメソッドにアクセスできます。これには、プライベートメンバも含まれます。
- 内部クラスは、private、protected、public、またはデフォルトとして宣言することができ、そのアクセス権は外部クラスのメンバーと同じです。
- 外部クラスで内部クラスのインスタンスを作成する際には、外部クラスのインスタンスを使用してコンストラクタを呼び出す必要があります。
- 内部クラスは、一度だけ使用する必要があるクラスを定義するために匿名クラスとして使用することができます。
- 静的メンバーや静的メソッドを持つことができないが、静的定数を含めることができるのは、非静的な内部クラスです。
- 内部クラスはインターフェースを実装することもでき、他のクラスを継承することもできます。
- 内部クラスのインスタンス化は外部クラスのメソッド内で行うことも、外部クラスの外で行うこともできます。
- 内部クラスは、外部クラスのインスタンスにアクセスすることができますが、外部クラスのローカル変数にアクセスすることはできません。しかし、その変数がfinalであればアクセスできます。
- 外部クラスの内部クラスは、外部クラス内で直接インスタンス化することができるだけでなく、外部クラスのメソッド内でもインスタンス化することができます。
✖