Innkapsling betyr å samle data og metodene som fungerer på dem i en enhet (en klasse) og skjule den interne tilstanden bak et kontrollert offentlig grensesnitt. Oppkallere samhandler gjennom metoder, ikke ved å poke på råe felt.
Hvorfor skjule tilstand
Hvis hvem som helst kan endre et felt direkte, kan du aldri garantere at objektet forblir gyldig. Innkapsling lar klassen håndheve sine egne invarianter.
{
balance;
{
(amount <= )
();
(amount > balance)
();
balance -= amount;
}
{ balance; }
}
