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:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
public class Vehiculo { // Atributos de la clase Vehiculo. String matricula; String marca; String modelo; String color; double tarifa; boolean disponibilidad; // Método constructor de la clase Vehiculo public Vehiculo (String matricula, String marca, String modelo, String Color, double tarifa){ this.matricula = matricula; this.marca = marca; this.modelo = modelo; this.color = color; this.tarifa = tarifa; this.disponibilidad = false; } //Definición de los métodos get public String getMatricula() { return this.matricula; } public String getMarta() { return this.marca; } public String getModelo() { return this.modelo; } public String getColor() { return this.color; } public double getTarifa() { return this.tarifa; } public boolean getDisponible() { return this.disponible; } // Definición de los metodos set public void setTarifa(double tarifa) { this.tarifa = tarifa; } public void setColor(String color) { this.color=color; } public void setDisponibilidad(boolean disponibilidad) { this.disponibilidad=disponibilidad; } |
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:
