Java -ローカルクラス-
インナークラスは、メソッド内に定義することができます。
そのインナークラスのことをローカルクラスといいます。
ローカルクラス
メソッド内で定義したローカル変数がメソッドの実行を開始して初めて利用できるように メソッド内のインナークラスもメソッドの実行時にのみインスタンス化して利用することができます。
また、そのメソッド内で定義したローカル変数が終了時にすべて破棄されてしまうと同様に、インナークラスから 生成されたインスタンスもメソッド終了時に破棄されてしまいます。
ローカルクラスはそのクラスをインスタンス化するコードよりも前に記述しておかなくてはなりません。
修飾子の利用
ローカルクラスは、すべて非staticなインナークラスです。
ローカル変数にstatic修飾子が付けれないようにローカルクラスにもstatic修飾子をつけることはできません。
また、メソッド内のローカル変数や引数にpublicやprivateなどのアクセス修飾子を付けることができないように ローカルクラス内のメンバにアクセス修飾子を付けることはできません。
外部クラスのローカル変数の利用
ローカルクラスでは、外部メソッドで定義されたローカル変数を利用することはできません。
また、外部メソッドで定義された引数も利用できません。
ただし、final修飾子を付けてローカル変数と定数化した場合は、アクセスすることができます。