Post

Java / Clases / Encapsulación

Encapsulación en Java

Java / Clases / Encapsulación

¿Qué es la Encapsulación?

Siguiendo con el ejemplo de las motos que planteamos en POO, hay datos que no deberían poder modificarse libremente desde fuera, como la velocidad o la velocidad máxima. Si cualquiera pudiera cambiarlos, podría poner la moto a 500 km/h o a -20 km/h.

La encapsulación consiste en proteger esos datos con private y ofrecer métodos controlados (public) para consultarlos o modificarlos respetando las reglas de la moto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Moto {

    private int velocidad;
    private int velocidadMaxima = 180;

    public void acelerar(int cantidad) {
        if (cantidad <= 0) {
            return; // no se acelera con valores negativos o cero
        }
        if (velocidad + cantidad <= velocidadMaxima) {
            velocidad = velocidad + cantidad;
        } else {
            velocidad = velocidadMaxima;
        }
    }

    public int getVelocidad() {
        return velocidad;
    }
}

De esta forma nadie podría hacer: moto.velocidad = 500; desde fuera. La moto controla sus propias reglas.

This post is licensed under CC BY 4.0 by the author.