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
- riferimento all’oggetto attraverso il suo fully qualified name
com.prova.mypackage.MyClass invece che semplicemente MyClass
- importando una classe membro del package
import com.prova.mypackage.MyClass;
rendere disponibile la classe MyClass che quindi potrà essere utilizzata come se stesse nel package corrente
- importando l’intero package
import com.prova.mypackage.*
rende visibili tutte le classi nel package