• ベストアンサー

getter/setterについて

オブジェクト指向について勉強し始めました。 getter/setterは良くないという話を聞いたのですが、getterはあったら便利な気がします。 たとえば、何かの計算結果をcalcHoge()等のメソッドではなく、コンストラクター内で計算してしまって変数に入れてしまえば、何回か計算結果が必要な時、getterでとれるのでは?と思いました。 ナンセンスなのでしょうか?デメリット等教えていただけると幸いです

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5320/13881)
回答No.1

本来オブジェクト指向が目指しているカプセル化と言う考え方では、内部変数は隠匿して外部から直接アクセスできないよう制御すべきと考えられているので、変数に直接アクセスする単純なgetter/setterは避けてちゃんとメソッドを作ってあげるべきと考える人もいます。 内部変数に直接アクセスするという事は、呼出元はオブジェクトの内部仕様の影響を受ける事に成るので疎結合とは言えず、オブジェクトの仕様変更の影響が外部にまで及ぶのでよろしくないとも言えます。 あと、Javaは単純なgetter/setterを言語仕様としてサポートしていないので、コードが煩雑になりメンテナンス性が落ちると言うのもありますね。

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

関連するQ&A