"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 |
GO TO FULL VERSION