Korzystanie zmiennej publicznej może spowodować ustawienie błędne wartości do zmiennej jako wartość wejściowy nie może być sprawdzana .
np
public class A{
public int x; // Value can be directly assigned to x without checking.
}
Korzystanie setter może być użyty do ustawienia zmiennej z sprawdzając wejście. Utrzymanie instancji varibale prywatne i getter i setter publicznych jest formą Encapsulation getter i setter jest również kompatybilny z Java Beans standardowych,
getter i setter również pomaga w realizacji Concept polimorfizmu
np
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;
}
polimorficzne przykład: Możemy assig n Odniesienie do obiektu Zmienna typu podrzędnego jako argument od metody wywołania do zmiennej odereno- wania obiektowego parametru super klasy wywoływanej metody.
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");
}
}
}
możliwy duplikat [Dlaczego używać getterów i ustawiaczy?] (Http://stackoverflow.com/questions/1568091/why-use-getters-and-setters) i [Auto-realizowane pobierające i ustawiające vs. publiczne pola] (http://stackoverflow.com/questions/111461) –