• ベストアンサー

publicフィールドの使いどき

http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000130.html このサイトには「フィールドは特別な場合を除き全てprivateにし」と書いてありますが、 特別な場合とは具体的にはどのような時ですか?

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

  • ベストアンサー
回答No.1

まず考えられるのはstatic finalな定数・不変オブジェクトとしての使うとかでは無いでしょうか。 Hello Worldからお世話になる標準ライブラリのSystemクラスのout等のフィールドもpublicかつstatic finalな不変オブジェクトですね。 自作クラスであっても、引数により振る舞いを変える様なメソッドの引数用にpublicな定数フィールドを切る事はあります。 JDK1.5以降はenum型の使用を考慮すべき局面も増えているとは思いますが。 非static finalなpublicなフィールドを定義する事は、カプセル化の概念に基づいて考えた時、余程の理由があってもNGです。 限定的な話にはなりますが、SAStrutsというフレームワークではアクションクラスのフィールドをpublicで定義します。 これは非static finalで定義しますが、こうする事でフレームワーク側がアクセッサを持つ「プロパティ」として見なすという独自の規約によるものです。 こういうのは本当に特別な場合にあたるのでしょうね。

okonekat
質問者

お礼

本当にありがとうございます! もやもやしてたものが消えました! ありがとうございます!

すると、全ての回答が全文表示されます。

関連するQ&A