una classe interagisce con le altre quasi solo attraverso costruttori e metodi pubblici.
- le altre classi non devono conoscere i dettagli implementativi di una classe per usarla efficacemente
accesso a campi e metodi
- campi e metodi possono essere pubblici o privati (o protetti)
I metodi di una classe possono chiamare i metodi pubblici o privati della stessa classe, ma solo quelli pubblici di un’altra classe.