ogni classe appartiene ad un package
viene dichiarato all'inizio del codice in cui è definita una classe con la keyword package
serve a definire a qualche gruppo di classi essa appartiene
server per evitare e gestire eventuali conflitti

un package è del tutto simile ad un 'path' in un filesystem solo che al posto degli slash (/) le componenti sono separate da punti (.)
servono per dare un ordine ed una struttura al software
i vari file .class devono essere messi nelle directory cartelle indicate

sintassi:
package path.path.path; per convensione i nomi sono tutti in minuscono o con numeri


esempio:
package my.first.project;




é possiible comprimere in un unico file jar i file delle directory per facilitare la gestione del codice
per comprimere serve un programma jar non basta usare il zip


visibilità
se ad una classe non si dichiara il modificatore_accesso a questa viene assegnato il tipo default
significa che saranno accessibili solo dalle altre classi appartenenti al medesimo package


l’accesso agli elementi pubblici (public) che fanno parte di un package diverso da quello in cui una classe si trova
deve avvenire in modo diverso che non semplicemente facendo riferimento al nome della classe