使用公共變量可能會導致錯誤的值設置爲變量計算爲輸入值不能檢查信息。
例如:
public class A{
public int x; // Value can be directly assigned to x without checking.
}
使用設定器可以用來設置變量與檢查輸入。保持實例varibale私人和getter和setter公衆封裝 吸氣的形式和setter也與Java組件標準兼容,
getter和setter也 有助於實現多態的概念
如:
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;
}
多態例如:我們可以assig n作爲調用方法的參數的子類型的對象參照變量被調用方法的超類參數的對象參照變量。
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");
}
}
}
可能重複的[爲什麼使用getters和setters?](http://stackoverflow.com/questions/1568091/why-use-getters-and-setters )和[自動實現的獲取器和設置器與公共字段](http://stackoverflow.com/questions/111461) –