インナークラスについて

      2017/02/09

Javaのインナークラスについて覚え書き。
「あれ?記述がエラーになる・・・」とか、おっちゃんよくあるので。

特徴

通常はアウタークラスの変数にアクセスできる。
クラスをstaticにするとアウタークラスのメンバ変数にアクセスできない(static変数にはアクセス可能)。
staticのクラスでもアウタークラスのインスタンスを引数で受け取れば、privateメンバにもアクセスできる。

アウタークラスのメンバ変数にアクセスしないなら、明示的にstaticを付ける。
まぁ、この場合はインナーでもない別クラスで良い気がしますが・・・

生成

アウタークラスからの生成

new {インナークラス}();

外部クラスからの生成

{アウタークラス インスタンス}.new {インナークラス}();

または

 - Java