Încapsularea înseamnă gruparea datelor și a metodelor care operează pe ele într-o singură unitate (o clasă) și ascunderea stării interne în spatele unei interfețe publice controlate. Apelatorii interacționează prin metode, nu prin accesarea directă a câmpurilor.
De ce ascunde starea
Dacă oricine poate schimba direct un câmp, nu poți niciodată garanta că obiectul rămâne valid. Încapsularea permite clasei să aplice propriile invariante.
{
balance;
{
(amount <= )
();
(amount > balance)
();
balance -= amount;
}
{ balance; }
}
