La encapsulación significa agrupar datos y los métodos que operan sobre ellos dentro de una unidad (una clase) y ocultar el estado interno detrás de una interfaz pública controlada. Los llamadores interactúan a través de métodos, no accediendo directamente a campos sin procesar.
Por qué ocultar estado
Si cualquiera puede cambiar un campo directamente, nunca podrás garantizar que el objeto permanezca válido. La encapsulación permite que la clase aplique sus propias invariantes.
{
balance;
{
(amount <= )
();
(amount > balance)
();
balance -= amount;
}
{ balance; }
}
