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;
	}

}
  1. ¿Qué es Java?
  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. Ejercicios con operadores aritméticos
  13. Estructuras de control
  14. Métodos
  15. Modificador static
  16. Arrays
  17. Ejercicio – juego del ahorcado
  18. Ejercicio - tres en raya
  19. Modificadores de acceso
  20. Constructores
  21. Herencia
  22. Polimorfismo
  23. Abstracción
  24. Interfaces
  25. Clases internas
  26. Garbage Collector
  27. String performance
  28. Encapsulación
  29. Contenedores
  30. Genéricos
  31. Ejercicio alta, baja, modificación y consulta en un ArrayList
  32. Ejercicio – juego de la oca
  33. Recorrer un map
  34. Sobreescritura equals
  35. Sobreescritura hashcode
  36. Sobreescritura compareTo
  37. Excepciones
  38. Implementar Serializable
  39. Enumeraciones
  40. Hilos
icono de mandar un mail¡Contacta conmigo!
contacta conmigoPablo Monteserín

¡Hola! ¿En qué puedo ayudarte?