dポイントプレゼントキャンペーン実施中!

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

A 回答 (1件)

まず考えられるのはstatic finalな定数・不変オブジェクトとしての使うとかでは無いでしょうか。


Hello Worldからお世話になる標準ライブラリのSystemクラスのout等のフィールドもpublicかつstatic finalな不変オブジェクトですね。
自作クラスであっても、引数により振る舞いを変える様なメソッドの引数用にpublicな定数フィールドを切る事はあります。
JDK1.5以降はenum型の使用を考慮すべき局面も増えているとは思いますが。

非static finalなpublicなフィールドを定義する事は、カプセル化の概念に基づいて考えた時、余程の理由があってもNGです。

限定的な話にはなりますが、SAStrutsというフレームワークではアクションクラスのフィールドをpublicで定義します。
これは非static finalで定義しますが、こうする事でフレームワーク側がアクセッサを持つ「プロパティ」として見なすという独自の規約によるものです。
こういうのは本当に特別な場合にあたるのでしょうね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/02/03 01:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!