Encapsulamento significa agrupar dados e os métodos que operam neles dentro de uma unidade (uma classe) e ocultar o estado interno atrás de uma interface pública controlada. Os chamadores interagem através de métodos, não mexendo diretamente em campos brutos.
Por que isso importa
Se alguém puder alterar um campo diretamente, você nunca poderá garantir que o objeto permaneça válido. O encapsulamento permite que a classe implemente seus próprios invariantes.
{
balance;
{
(amount <= )
();
(amount > balance)
();
balance -= amount;
}
{ balance; }
}
