インナークラスについて|Java
Javaのインナークラスについて覚え書き。
「あれ?記述がエラーになる・・・」とか、おっちゃんよくあるので。
インナークラスの特徴
- アウタークラスの変数にアクセスできる
- クラスを
static
にするとアウタークラスのメンバ変数にアクセスできない(static変数
にはアクセス可能) - クラスを
static
にしても、アウタークラスのインスタンスを引数で受け取れば、アウタークラスのprivate
メンバにアクセスできる
アウタークラスのメンバ変数にアクセスしないなら、明示的に
まぁ、この場合はインナーではなく別クラスで良い気がしますが・・・
static
を付ける。まぁ、この場合はインナーではなく別クラスで良い気がしますが・・・
インナークラスの生成方法
アウタークラスからの生成
new {インナークラス}();
InnerClass innerCls = new InnerClass();
外部クラスからの生成
{アウタークラス インスタンス}.new {インナークラス}();
OuterClass.InnerClass innerCls = new OuterClass().new InnerClass();
または
OuterClass outerCls = new OuterClass();
InnerClass innerCls = outerCls.new InnerClass();