パブリック変数を使用すると、入力値をチェックできないため、変数に誤った値が設定される可能性があります。
例えば:
public class A{
public int x; // Value can be directly assigned to x without checking.
}
セッターを使用すると、入力をチェックして変数を設定できます。インスタンスをプライベートに保ち、ゲッターとセッターをパブリックに保つことはカプセル化ゲッターの形式であり、セッターはJavaBeans標準
とも互換性があります。
ゲッターとセッターは、ポリモーフィズムの概念の実装にも役立ちます
例えば:
public class A{
private int x; //
public void setX(int x){
if (x>0){ // Checking of Value
this.x = x;
}
else{
System.out.println("Input invalid");
}
}
public int getX(){
return this.x;
}
多態的な例:サブタイプのオブジェクト参照変数を、Callingメソッドからの引数として、Calledメソッドのスーパークラスパラメーターのオブジェクト参照変数に割り当てることができます。
public class Animal{
public void setSound(Animal a) {
if (a instanceof Dog) { // Checking animal type
System.out.println("Bark");
}
else if (a instanceof Cat) { // Checking animal type
System.out.println("Meowww");
}
}
}