• ベストアンサー

インナークラスについて

JAVAについて友人に質問されたのですが、 わかりやすく解説をすることが出来ませんでした。 よろしくお願い致します。 ----------------------------------------------- インナークラスについてですが、 ローカルクラスの修飾子はabstractと finalのみ可なのは、どういった理由からですか? それと、ローカルクラスと匿名クラスは、 そのクラスを宣言しているメソッドの final変数のみ参照が可能というのは どういった理屈でfinalのみなのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.1

端的に言えば、 「開発者の都合」 ということなのですが…、 ローカルクラスの修飾子が制限されているのは、 他の、public, protected, private, static修飾子が 意味を持たないため、と考えられます。 メソッド外からは使えないので、publicはない。 継承できないからprotectedでもない…など。 abstract, finalのみが許されていますが、 通常、これらも使わないと思います。 final変数のみ参照が可能なのは… これこそ、開発の都合なのですが、簡単に言うと 「そのクラスのオブジェクトの寿命と、 メソッドの変数の寿命を一致させるのが難しいため」 だそうです。 Java House Maling List HomePage(←検索してください)のトピックスを見ると 参考になることが書いてあると思います。

関連するQ&A

専門家に質問してみよう