La 'encapsulación' es un concepto fundamental en la programación orientada a objetos (POO), incluyendo el lenguaje de programación Java. Se refiere a la técnica de envolver datos (variables) y código (métodos) juntos en una sola unidad, en otras palabras, es la práctica de mantener los campos dentro de una clase privados, y accederlos a través de métodos públicos.
Considere el siguiente código como ejemplo de encapsulación en Java:
public class Coche {
// campos privados
private String marca;
private String modelo;
private int año;
// métodos públicos
public String getMarca() {
return marca;
}
public void setMarca(String marcaNueva) {
this.marca = marcaNueva;
}
// demás métodos getter y setter...
}
En el ejemplo, marca
, modelo
, año
son campos privados, lo que significa que solo pueden ser accesados dentro de la clase Coche
. Para acceder o modificar estos datos desde fuera de la clase, necesitamos utilizar los métodos get
y set
, que son métodos públicos. De esta manera, la encapsulación nos permite proteger nuestros datos de la manipulación directa.
Tomar la decisión de hacer un campo privado o no, depende totalmente del diseño de la clase. La idea detrás de esto es ocultar cómo se implementa una clase (ocultando sus campos), permitiendo cambiar la implementación sin afectar a otros partes del código que utiliza la clase.
Las ventajas de la encapsulación incluyen el aumento de la seguridad del software, la ocultación de los detalles de implementación y la mejora de la mantenibilidad del código.