セッターとゲッターは、クラスのフィールドの値を取得するために使用されるメソッドです。それらは、単純な値を返すことができるため、その値の背後にあるロジックから独立させるコード化の実践です。
public String getName() {
return value;
}
または、より洗練された何かを行います。
public String getName() {
String modValue = new String();
//Lots of code here
return modValue;
}
他の何かを返す必要がある場合、または別のことを行う必要がある場合、この特定のクラスとやり取りするクラスは、影響を受けることなくセッターとゲッターを呼び出します (値の型を変更するなどの大きな変更を加えない限り...)。
One classOne = new One();
one.getValue(); //returns the value or executes some logic before. It doesn't matter
//if it changes because the method is the same. Your classes do not
//depend on each other.
ゲッターに代わるものは...これ...
classOne.value;
フィールドに直接アクセスしますが、これはコードのにおい、災害、およびシソーラスを持っていない多くの形容詞です。値を返す前に何かを行う必要がある場合は、このようにします (これは、数値を返し、丸める必要があると考えてください...すべてのコードを変更するか、取得するたびに丸める必要があります。 getter を返す前に丸めることができます)。
ここで設計を検討する必要があります。他のクラスの値とまったく同じ値を返したい場合は、クラスのインスタンスをクラスに持ち、getter 呼び出しを委譲することを考慮することができone
ますtwo
。それを正当化します。オブジェクトが関連していない場合は、その値を自分で設定する必要があります。
セッターとゲッターは、特定のコンテキストごとに関連しているため、クラスごとに定義されます。別のクラスが呼び出された、または別のクラスに関連しているゲッターを定義することはできません。ただし、これらのクラスが関連している場合を除き、一方が他方を含んでいるか、またはそれらの間に次のような何らかの接続があるためです (例をいくつか挙げます)。
- 値を複製する外部エージェント
- 両方のクラスで共有される外部オブジェクト
- 両方のクラスが処理する共通のデータ ソース
- 一方のクラスは他方のクラスの拡張であり、2 番目のクラスはメソッドをオーバーライドしています。