"Hej Amigo! Idag ska vi prata om paket."
"Filer på en dator är grupperade i mappar. Klasser i Java (varje klass lagras i en separat fil) är grupperade i paket, som motsvarar mappar på hårddisken. Så, det är inget nytt här. Det är två saker jag" vill dock påpeka."
" För det första består en klasss fullständiga unika namn av dess paketnamn plus klassnamnet . Här är några exempel:"
Fullständigt unikt namn | Paketnamn | Klassnamn |
---|---|---|
java.io.FileInputStream | java.io | FileInputStream |
java.lang.String | java.lang | Sträng |
java.util.ArrayList | java.util | ArrayList |
org.apache.tomcat.Servlet | org.apache.tomcat | Servlet |
Katt | Ej angivet | Katt |
"Ett fullständigt klassnamn är alltid unikt."
"Det skulle vara jobbigt om vi var tvungna att skriva det långa namnet, dvs java.util.ArrayList , varje gång. Det är därför Java låter dig importera klasser. Du kan använda andra klassers korta namn i din kod, men i början av din klass måste du uttryckligen ange vilka klasser du kommer att använda."
"Hur gör man det?"
"Med en rad som ser ut så här: import java.util.ArrayList;
"
"I början av en klass, direkt efter att du har deklarerat paketet, kan du ange vilken klass du syftar på när du använder ArrayList i din kod."
"Varför överkomplicera saker? Kan klasser ha identiska namn?"
"Ja. Det kan finnas klasser med samma namn i olika paket. Vi kan inte importera två klasser med identiska namn, så vi måste kalla en av dem vid dess fullständiga namn."
"Här är en analogi för dig. Du har en kollega som heter Jim. Inga problem med det: alla vet vem han är. Men om det fanns tre Jims på ditt kontor, skulle du behöva kalla dem vid deras fullständiga unika namn för att undvika förvirring."
" För det andra är det alltid bättre att placera klasser i paket, inte root src-mappen. När du inte har många klasser är detta inget problem, men när det finns många är det lätt att blanda ihop dem. Skapa alltid klasser inuti paket."
I Java är det vanligt att ge klasser och paket meningsfulla namn. Många företag släpper sina bibliotek (uppsättningar av klasser) och namnger dem efter deras företag eller webbplats för att undvika förvirring:"
Paketnamn | Företags-/projektnamn |
---|---|
org. apache .common org. apache .tomcat org. apache .util |
Apache |
com. orakel .jdbc | Orakel |
java .io java x.servlet |
Sol, Java |
com. ibm.websphere | IBM, WebSphere |
com. jboss | JBoss |
GO TO FULL VERSION