L'incapsulamento significa raggruppare i dati e i metodi che operano su di essi all'interno di una sola unità (una classe) e nascondere lo stato interno dietro un'interfaccia pubblica controllata. Chi chiama interagisce attraverso i metodi, non manipolando direttamente i campi.
Perché nascondere lo stato
Se chiunque può modificare un campo direttamente, non puoi mai garantire che l'oggetto rimanga valido. L'incapsulamento permette alla classe di applicare i propri invarianti.
{
balance;
{
(amount <= )
();
(amount > balance)
();
balance -= amount;
}
{ balance; }
}
