Javaのローカルクラスの仕様についての質問です。
ローカルクラスとはメソッドブロック内で宣言されるクラスのことですが、次のような特徴を持っています。
finalとabstract以外の修飾は行えない。
自分を取り囲むメソッド内のローカル変数についてはfinalがついたものにのみアクセスが可能。
まず、一つ目の「finalとabstract以外の修飾は行えない」に関してですが、finalやabstractでの修飾の意義がよくわかりません。
publicやprivateにしたところで、スコープはメソッド内なので、意味がないのはわかるのですが、finalをつけて、継承できなくしたり、abstractで抽象メソッドにする意味がよくわからないのです。
続いて、二つ目の「自分を取り囲むメソッド内のローカル変数に対するアクセスの制限」ですが、なぜわざわざこのような制限を設けたのでしょうか。
実際、外部クラスのメンバにはアクセス可能になっています。
質問は以上2点です。
回答お願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/08/08 00:08
2016/08/08 00:19
退会済みユーザー
2016/08/08 10:48