lunes, 28 de julio de 2014

Encapsulación

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