Encapsulación:
Hasta ahora no hemos caído en el detalle de que no siempre queremos que se acceda a un objeto creado por nosotros (mediante el operador "punto"). Hemos estado creando variables que están "expuestas" a ser modificadas en otro lugar del código y no siempre vamos a querer esto.
Un ejemplo sería el de una variable, por ejemplo:
elGato.altura = 30; //que en un inicio tenemos ésta variable con un valor de 30 cm.
elGato.altura = 0; //cambiamos el valor a 0. Esto hay que evitarlo a toda costa puesto que un gato nunca va a medir "0" cm.
Para evitar estas modificaciones de variable que no corresponden con el objetivo de la variable hacemos una encapsulación.
public void setAltura (int al) {
if (al > 9) {
altura = al;
}
}
Vemos que dentro del propio método setter colocamos un condicionante.
Ocultando los datos:
Podemos ocultar nuestros datos escribiendo "public" o "private". La regla de oro de la encapsulación:
Haz "private" tus variables instanciadas
Haz "public" tus getters y setters.
Ejemplo de "Encapsulating":
El ejemplo lo copio del libro:
class GoodDog {
private int size;
public int getSize () {
return size;
{
public void setSize (int s) {
size = s;
}
void bark () {
if (size > 60) {
System.out.println ("Woof! Woof");
} else if (size >14) {
System.out.println ("Ruff! Ruff!");
} else {
System.out.println (" Yip! Yip!");
}
}
}
class GoodDogTestDrive {
public static void main (String [] args) {
GoodDog one = new GoodDog ();
one.setSize (70);
GoodDog two = new GoodDog ();
two.setSize (8);
System.out.println ("Dog one :" +one.getSize () );
System.out.println ("Dog two: " + two.getSize () );
one.bark ();
two.bark ();
}
}
No hay comentarios:
Publicar un comentario