Indkapsling betyder at bundele data og de metoder, der opererer på det, inden i en enhed (en klasse) og skjule den interne tilstand bag et kontrolleret offentligt grænseflade. Kalderen interagerer gennem metoder, ikke ved at røre ved rå felter.
Hvorfor skjule tilstand
Hvis alle kan ændre et felt direkte, kan du aldrig garantere, at objektet forbliver gyldigt. Indkapsling giver klassen mulighed for at håndhæve sine egne invarianter.
{
balance;
{
(amount <= )
();
(amount > balance)
();
balance -= amount;
}
{ balance; }
}
