Encapsulación

Una  clase  encapsulada  es  una  clase  que  declara  todas  sus  propiedades  como privadas y solo sepuede acceder a ella a través de los métodos get() y set().

Toda propiedad privada va a tener asociados dos métodos públicos (get y set) a través de los cuales vamos a poder modificar el valor de la propiedad (set) o recuperar su valor (get).

Al generar  una instancia  de una clase no encapsulada,  como  las propiedades  son publicas puedo acceder directamente a ellas y establecer cualquier valor mientras que sea un numero entero.

Para evitar la introducción de datos erróneos optamos por encapsular la clase, de esta forma tengo que acceder a las propiedades a través del método setXXX() en el cual puedo  incorporar  la  lógica  de  negocio  necesaria  para  poder  controlar  si  el  valor introducido es correcto.

Los métodos get se corresponden con métodos de consulta, los set se corresponden con métodos de modificación. Luego los get se usan para extraer el valor de los atributos del objeto y los set para modificarlos.

Veamos un ejemplo:

En nuestro ejemplo, en la clase Vehículo vamos a necesitar un método get para cada uno de sus atributos y otro método set para los atributos que se puedan modificar una vez que se haya instanciado al objeto.

Vemos que en la clase Vehículo encontramos los métodos get,  getMatricula(), getMarca(), getModelo(), getColor(), getTarifa() y getDisponible(). Los métodos set únicamente se definen para aquellos atributos que pueden ser modificados después de la creación del objeto. En este caso en nuestra clase Vehiculo es necesario definir a setTarifa(doble Tarifa) y setDisponible(boolean disponible) para modificar la tarifa y la disponibilidad.

Un método set se declarará como public y devolverá void. La lista de parámetros del método set incluye el tipo y el valor a modificar. Por ejemplo en setTarifa(double tarifa) debe de modificar el valor de la tarifa del alquiler almacenado en el objeto. Observa la siguiente imagen:

 

Publicada el
Categorizado como POO