Pakker i Java: Hvordan lage og bruke pakker i Java?



Dette innlegget om pakker i java vil hjelpe deg å forstå hva pakker er, hvordan du lager og bruker dem i Java for å være effektive java-programmerere.

En av de mest innovative er begrepet pakker.Pakker i Java er en måte å kapsle inn en gruppe klasser, grensesnitt, oppføringer, merknader og underpakker. Konseptuelt kan du tenke på java-pakker som ligner på forskjellige mapper på datamaskinen din. I denne opplæringen vil vi dekke det grunnleggende om pakker i

Nedenfor er emnene dekket i denne artikkelen:





Hva er pakke i Java?

Java-pakken er en mekanisme for gruppering av lignende typer klasser, grensesnitt og underklasser samlet basert på funksjonalitet. Når programvare er skrevet i , kan den bestå av hundrevis eller til og med tusenvis av individuelle klasser. JegDet er fornuftig å holde ting organisert ved å plassere relaterte klasser og grensesnitt i pakker.

Bruk av pakker mens koding gir mange fordeler som:



    • Gjenbrukbarhet: Klassene i pakkene til et annet program kan lett brukes på nytt
    • Navnekonflikter: Pakkerhjelpe oss med å identifisere en klasse, for eksempel kan vi ha selskap.salg.medarbeider og selskap.markedsføring.medarbeider klasser
    • Kontrollert tilgang: Tilbud tilgangsbeskyttelse slik som sroterte klasser, standardklasser og privatklasser
    • Datakapsling : De sgjøre en måte å skjule klasser på, og forhindre at andre programmer får tilgang til klasser som kun er ment for internt bruk
    • Vedlikehold: Med pakker,du kan organisere prosjektet ditt bedre og enkelt finne relaterte klasser

Det er en god praksis å bruke pakker mens du koder i Java. Som programmerer kan duenkelt finne ut av , grensesnitt, oppføringer og merknader som er relatert. Vi har to typer pakker i java.

Typer av pakker i Java

Basert på om pakken er definert av brukeren eller ikke, er pakkene delt inn i to kategorier:

er java basert på c
  1. Innebygde pakker
  2. Brukerdefinerte pakker

Innebygde pakker

Innebygde pakker eller forhåndsdefinerte pakker er de som følger med som en del av (Java Development Kit) for å forenkle oppgaven til Java-programmerer. De består av et stort antall forhåndsdefinerte klasser og grensesnitt som er en del av Java API-er. Noen av de ofte brukte innebygde pakkene er java.lang, java.io, java.util, java.applet, etc. Her er et enkelt program som bruker en innebygd pakke.



pakke Edureka importerer java.util.ArrayList klasse BuiltInPackage {public static void main (String [] args) {ArrayList myList = new ArrayList (3) myList.add (3) myList.add (2) myList.add (1) System. out.println ('Elementene i listen er:' + myList)}}

Produksjon:

Elementene i listen er: [3, 2, 1]

ArrayList-klassen tilhører java.util-pakken. For å bruke den, må vi importere pakken ved hjelp av importuttalelsen. Den første linjen i koden importere java.util.ArrayList importerer java.util-pakken og bruker som er tilstede i delpakken.

Brukerdefinerte pakker

Brukerdefinerte pakker er de som er utviklet av brukere for å gruppere relaterte klasser, grensesnitt og underpakker. Med hjelp av et eksempelprogram, la oss se hvordan du lager pakker, kompilerer Java-programmer inne i pakkene og utfører dem.

Opprette en pakke i Java

Å lage en pakke i Java er en veldig enkel oppgave. Velg et navn på pakken og inkluder en pakke kommandoen som den første setningen i Java-kildefilen. Java-kildefilen kan inneholde klassene, grensesnittene, oppregningene og kommentartypene du vil inkludere i pakken.Følgende utsagn oppretter for eksempel en pakke med navnet MyPackage.

pakke MyPackage

Pakkeoppgaven spesifiserer bare hvilken pakke klassene som er definert tilhører ..

Merk: Hvis du utelater pakkeerklæringen, blir klassenavnene satt i standardpakken, som ikke har noe navn. Selv om standardpakken er bra for korte programmer, er den utilstrekkelig for virkelige applikasjoner.

Inkludert en klasse i Java-pakke

Tillage en klasse i en pakke, bør duerklære pakkenavnet som den første uttalelsen til programmet ditt. Deretter inkluderer du klassen som en del av pakken. Men husk at en klasse kan ha bare en pakkeerklæring. Her er et enkelt program for å forstå konseptet.

pakke MyPackage public class Sammenlign {int num1, num2 Compare (int n, int m) {num1 = n num2 = m} public void getmax () {if (num1> num2) {System.out.println ('Maksimal verdi på to tall er '+ num1)} annet {System.out.println (' Maksimumsverdien for to tall er '+ num2)}} offentlig statisk ugyldig hoved (String args []) {Sammenlign gjeldende [] = ny Sammenlign [3] gjeldende [1] = ny Sammenlign (5, 10) gjeldende [2] = ny Sammenlign (123, 120) for (int i = 1 i<3 i++) { current[i].getmax() } } } 

Produksjon:

Maksimumsverdien på to tall er 10 Maksimumsverdien på to tall er 123

Som du kan se, har jeg erklært en pakke som heter MyPackage og opprettet en klasse Sammenlign i den pakken. Java bruker filsystemkataloger til å lagre pakker. Så dette programmet vil bli lagret i en fil som Sammenlign. Java og lagres i katalogen MyPackage. Når filen blir kompilert, vil Java opprette en .klasse filen og lagre den i samme katalog. Husk at navnet på pakken må være det samme som katalogen som denne filen er lagret under.

Du lurer kanskje på hvordan du bruker denne Sammenlign klassen fra en klasse i en annen pakke?

Opprette en klasse inne i pakken mens du importerer en annen pakke

Vel, det er ganske enkelt. Du trenger bare å importere den. Når den er importert, kan du få tilgang til den ved navn. Her er et eksempelprogram som demonstrerer konseptet.

pakke Edureka importer MyPackage.Compare public class Demo {public static void main (String args []) {int n = 10, m = 10 Compare current = new Compare (n, m) if (n! = m) {current.getmax ()} annet {System.out.println ('Begge verdiene er like')}}}

Produksjon:

Begge verdiene er like

Jeg har først erklært pakken Edureka importerte deretter klassen Sammenligne fra pakken MyPackage. Så ordrennår vi lager en klasse i en pakke mens vi importerer en annen pakke er,

  • Pakkedeklarasjon
  • Pakkeimport

Vel, hvis du ikke vil bruke importuttalelsen, er det et annet alternativ for å få tilgang til en klassefil av pakken fra en annen pakke. Du kan bare bruke fullt kvalifisert navn mens du importerer en .

Bruker fullt kvalifisert navn mens du importerer en klasse

Her er et eksempel for å forstå konseptet. Jeg skal bruke den samme pakken som jeg har erklært tidligere i bloggen, MyPackage .

pakke Edureka public class Demo {public static void main (String args []) {int n = 10, m = 11 // Bruk fullt kvalifisert navn i stedet for import MyPackage.Compare current = new MyPackage.Compare (n, m) if ( n! = m) {current.getmax ()} annet {System.out.println ('Begge verdiene er like')}}}

Produksjon:

Maksimumsverdien på to tall er 11

I Demo-klassen, i stedet for å importere pakken, har jeg brukt det fullt kvalifiserte navnet som f.eks MyPackage.Compare for å skape gjenstanden for den. Siden vi snakker om import av pakker, kan du like godt sjekke ut begrepet statisk import i Java.

Statisk import i Java

Statisk importfunksjon ble introdusert i fra versjon 5. Det gjør det mulig for Java-programmereren å få tilgang til statiskmedlem av en klasse direkte uten å bruke det fullstendige navnet.

pakke MyPackage importerer statisk java.lang.Math. * // statisk import importerer statisk java.lang.System. * // statisk import offentlig klasse StaticImportDemo {offentlig statisk tomrom hoved (String args []) {dobbel val = 64,0 dobbelt sqroot = sqrt (val) // Få tilgang til sqrt () -metoden direkte out.println ('Sq. root of' + val + 'is' + sqroot) // Vi trenger ikke bruke 'System.out}}
 Produksjon: 
Sq. roten til 64.0 er 8.0

Selv om bruk av statisk import innebærer mindre koding, kan overbruk det gjøre programmet uleselig og uholdbart. La oss nå gå videre til neste emne, tilgangskontroll i pakker.

Tilgangsbeskyttelse i Java-pakker

Du er kanskje klar over ulike aspekter av Java sin tilgangskontrollmekanisme og dens tilgangsspesifikatorer . Pakker i Java legger til en annen dimensjon i tilgangskontrollen. Både klasser og pakker er et middel til datakapsling . Mens pakker fungerer som containere for klasser og andre underordnede pakker, fungerer klasser som containere for data og kode. På grunn av dette samspillet mellom pakker og klasser, adresserer Java-pakker fire kategorier av synlighet for klassemedlemmer:

  • Underklasser i samme pakke
  • Ikke-underklasser i samme pakke
  • Underklasser i forskjellige pakker
  • Klasser som verken er i samme pakke eller underklasser

Tabellen nedenfor gir enekte bilde av hvilken type tilgang som er mulig og ikke når du bruker pakker i Java:

Privat Ingen modifikator Beskyttet Offentlig

Samme klasse

Ja

Ja

Ja

Ja

Samme pakkeunderklasser

Nei

Ja

Ja

Ja

Samme pakke ikke-underklasser

forskjell mellom pass-verdi og pass by reference i java

Nei

Ja

Ja

Ja

Ulike pakker underklasser

Nei

Nei

Ja

Ja

Ulike pakker, ikke-underklasser

Nei

Nei

Nei

Ja

Vi kan forenkle dataene i tabellen ovenfor som følger:

  1. Alt som er erklært offentlig, er tilgjengelig fra hvor som helst
  2. Alt som er erklært privat kan bare sees i den klassen
  3. Hvis tilgangsspesifikator ikke er nevnt, er et element synlig for underklasser så vel som for andre klasser i samme pakke
  4. Til slutt kan alt deklarert beskyttet element sees utenfor den nåværende pakken, men bare til klasser som underklasser klassen din direkte

På denne måten gir Java-pakker tilgangskontroll til klassene. Vel, dette pakker konseptet med pakker i Java. Her er noen punkter du bør huske på når du bruker pakker i .

Poeng å huske

  • Hver klasse er en del av en pakke. Hvis du utelater pakkeuttalelsen, blir klassenavnene satt i standardpakken
  • En klasse kan bare ha én pakkeerklæring, men den kan ha mer enn én importpakkeerklæring
  • Navnet på pakken må være det samme som katalogen som filen lagres under
  • Når du importerer en annen pakke, må pakkedeklarasjonen være den første uttalelsen, etterfulgt av pakkeimport

Vel, dette fører oss til slutten av denne ‘Packages in Java’-artikkelen. Vi lærtehva en pakke er og hvorfor vi skal bruke dem. Det er ingen tvil om at Java-pakken er en av de viktigste delene for effektive java-programmerere. Det oppgraderer ikke bare programmererens kodestil, men reduserer også mye ekstra arbeid.

Hvis du fant denne artikkelen om 'Packages in Java', sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk med mer enn 250 000 fornøyde elever spredt over hele verden. Vi er her for å hjelpe deg med hvert trinn på reisen, for å bli en foruten dette java-intervjuspørsmålene, kommer vi med en læreplan som er designet for studenter og fagpersoner som ønsker å være Java-utvikler.