Encapsulamiento

La encapsulación impide la manipulación externa de algunas partes de los objetos.

  • Fuerza al usuario a utilizar un método para acceder a los datos.
  • Hace que el código sea más fácil de mantener

Esto mejora la estabilidad de la aplicación, ya que el cambio directo de una variable puede afectar al correcto funcionamiento de la misma.

Esto permite un código más reutilizable, ya que este se encuentra encapsulado en módulos independientes.

Para ello declararé los métodos como public y las variables como private.

Ejemplo
Al hacer un pedido, no pueden venir más de 10 paquetes. Por tanto si vienen menos de 10 paquetes el número de paquetes en el almacén se modifica, pero pero si vienen más de 10 saltaría un mensaje de error.

public class E_encapsulamiento {
	public static void main(String[] args){
		Almacen almacen = new Almacen();
		almacen.setNumCajasAlmacen(12);
		System.out.println(almacen.getNumCajasAlmacen());
	}	
}
class Almacen{	
	private int numCajasAlmacen;

	public int getNumCajasAlmacen() {
		return numCajasAlmacen;
	}
	public void setNumCajasAlmacen(int numCajasAlmacen) {
		if(numCajasAlmacen>10){
			System.out.println("No se admiten entregas de más de 10 unidades");
		}else{
			this.numCajasAlmacen = numCajasAlmacen;
		}
	}
}

Generar automáticamente los get y set:
Btn dch → source → Generate Getters and Setters
Ctrl + shift + s → Generate Getters and Setters

POJO (Plain Old Java Object)

  • Debe tener al menos un constructor sin argumentos
  • Los atributos de la clase deben ser privados
  • Dichos atributos deben ser accesibles mediante métodos get y set
  • Debe ser serializable

Bean

Es un POJO que además implementa la interfaz serializable.

public class Alumno implements Serializable {
	private String nombre;
	private int edad;

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public int getEdad() {
		return edad;
	}

	public void setEdad(int edad) {
		this.edad = edad;
	}

}

Índice del curso de Java JSE

  1. Introducción
  2. Eclipse
  3. Resolución de problemas
  4. Clases
  5. Objetos
  6. Hola mundo
  7. Comentarios
  8. Variables
  9. Constantes
  10. Operadores
  11. Lectura de datos
  12. Estructuras de control
  13. Métodos
  14. Modificador static
  15. Arrays
  16. Ejercicio – juego del ahorcado
  17. Ejercicio - tres en raya
  18. Modificadores de acceso
  19. Constructores
  20. Herencia
  21. Polimorfismo
  22. Abstracción
  23. Interfaces
  24. Clases internas
  25. Garbage Collector
  26. String performance
  27. Encapsulamiento
  28. Contenedores
  29. Genéricos
  30. Ejercicio alta, baja, modificación y consulta en un ArrayList
  31. Ejercicio – juego de la oca
  32. Recorrer un map
  33. Sobreescritura del equals
  34. Sobreescritura del hashcode
  35. Sobreescritura del compareTo
  36. Excepciones
  37. Enumeraciones
  38. Hilos
icono de mandar un mail¡Contacta conmigo!
Pablo Monteserín
contacta conmigoPablo Monteserín

¡Hola! ¿En qué puedo ayudarte?