私のインターンシップで私の同僚の一人が私にヒントを与えました。私はこれが良い練習であるかどうかを知りたい。プライベート文字列またはpublic static String?
私がやっていたことは、含まれている値のためだけに使用され、実際に何かを行う関数を持たないクラスを作成することでした。(ゲッター、セッター、コンストラクタを除いて)それは常に同じ状態を保つ必要があるため
public class ObjectIUse{
Private String name;
public ObjectIUse(String name){
this.name = name;
}
public String getName(){
return name;
}
}
は、だから私はセッターを使用していない:私はこのように私の変数を宣言しました。それが最終的なものであるため、しかし、それも変更することはできません、公開されているので、今、私たちはどのゲッターやセッターを持っている必要はありませんので
public class ObjectIUse{
public final String name;
public ObjectIUse(String name){
this.name = name;
}
}
:私の同僚は、私はまた、このようにそれを行うことができますことを言いました。
どちらが良いでしょうか?それとも、まだプライベートにすることも最終的にすることが望ましいかもしれませんか?私はすべてのオプションが明らかに機能することを意味します。私はちょうど良いと理由を知りたい。
プライベートにするそれを最終的にする。 –
セイムの言葉。パブリックメンバー変数は「有害なもの」とみなされます。あなたのオブジェクトが変更されていないときは(「不変」と言う)、メンバ変数finalを宣言します。これにより、たとえ誰かがあなたのクラスインスタンスを反映していても、コンストラクタでそれを設定し、変更を防止します。 –
それは私がより良い選択肢と思っていたものでした。あなたの推論は何ですか? – WereWolfBoy