Inkapsling innebär att samla data och metoderna som arbetar på det i en enhet (en klass) och dölja det interna tillståndet bakom ett kontrollerat publikt gränssnitt. Anropare interagerar genom metoder, inte genom att direkt komma åt råa fält.
Varför dölja tillståndet
Om vem som helst kan ändra ett fält direkt, kan du aldrig garantera att objektet förblir giltigt. Inkapsling låter klassen framtvinga sina egna invarianter.
{
balance;
{
(amount <= )
();
(amount > balance)
();
balance -= amount;
}
{ balance; }
}
