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.
