Enkapsulacija pomeni paketiranje podatkov in metod, ki delujejo na njih, v eno enoto (razred) ter skrivanje notranjega stanja za nadzorovano javno vmesnik. Klicatelji komunicirajo prek metod, ne z neposrednim dostopom do surovih polj.
Zakaj skrivati stanje
Če lahko kdorkoli neposredno spremeni polje, nikoli ne morete zagotoviti, da objekt ostane veljaven. Enkapsulacija omogoči razredu, da uveljavlja svoje lastne invariante.
{
balance;
{
(amount <= )
();
(amount > balance)
();
balance -= amount;
}
{ balance; }
}
