"Hei, Amigo! I dag skal vi snakke om pakker."

"Filer på en datamaskin er gruppert i mapper. Klasser i Java (hver klasse er lagret i en egen fil) er gruppert i pakker, som tilsvarer mapper på harddisken. Så, det er ikke noe nytt her. Det er to ting jeg" vil imidlertid påpeke."

" For det første består en klasses fullstendige unike navn av pakkenavnet pluss klassenavnet . Her er noen eksempler:"

Fullt unikt navn Pakkenavn Klassenavn
java.io.FileInputStream java.io FileInputStream
java.lang.String java.lang String
java.util.ArrayList java.util ArrayList
org.apache.tomcat.Servlet org.apache.tomcat Servlet
Katt Ikke spesifisert Katt

"Et fullt klassenavn er alltid unikt."

"Det ville vært vondt om vi måtte skrive det lange navnet, dvs. java.util.ArrayList , hver gang. Det er derfor Java lar deg importere klasser. Du kan bruke andre klassers korte navn i koden din, men i begynnelsen av klassen din må du eksplisitt angi hvilke klasser du vil bruke."

"Hvordan gjør du det?"

"Med en linje som ser slik ut: import java.util.ArrayList;"

"I begynnelsen av en klasse, umiddelbart etter at du har deklarert pakken, kan du indikere hvilken klasse du refererer til når du bruker ArrayList i koden din."

"Hvorfor overkomplisere ting? Kan klasser ha identiske navn?"

"Ja. Det kan være klasser med samme navn i forskjellige pakker. Vi kan ikke importere to klasser med identiske navn , så vi må kalle en av dem ved fullt navn."

"Her er en analogi for deg. Du har en kollega som heter Jim. Ikke noe problem med det: alle vet hvem han er. Men hvis det var tre Jims på kontoret ditt, ville du måtte kalle dem ved deres fulle unike navn for å unngå forvirring."

" For det andre er det alltid bedre å plassere klasser i pakker, ikke root src-mappen . Når du ikke har mange klasser, er ikke dette et problem, men når det er mange, er det lett å blande dem sammen. Opprett alltid klasser inne i pakkene."

I Java er vanlig praksis å gi klasser og pakker meningsfulle navn. Mange bedrifter gir ut bibliotekene sine (sett med klasser) og navngir dem etter firmaet eller nettstedet for å unngå forvirring:"

Pakkenavn Bedrifts-/prosjektnavn
org. apache .common
org. apache .tomcat
org. apache .util
Apache
com. oracle .jdbc Oracle
java .io
java x.servlet
Sol, Java
com. ibm.websphere IBM, WebSphere
com. jboss JBoss