Pakker i Java: Hvordan oprettes og bruges pakker i Java?



Dette indlæg om pakker i java hjælper dig med at forstå, hvad pakker er, hvordan du opretter og bruger dem i Java til at være effektive java-programmører.

En af de mest innovative er begrebet pakker.Pakker i Java er en måde at indkapsle en gruppe klasser, grænseflader, optællinger, annoteringer og underpakker på. Konceptuelt kan du tænke på java-pakker, der ligner forskellige mapper på din computer. I denne vejledning vil vi dække de grundlæggende pakker i

Nedenfor er de emner, der er omfattet af denne artikel:





Hvad er pakke i Java?

Java-pakke er en mekanisme til gruppering af lignende type klasser, grænseflader og underklasser samlet baseret på funktionalitet. Når der er skrevet software i , det kan bestå af hundreder eller endda tusinder af individuelle klasser. jegDet giver mening at holde tingene organiseret ved at placere relaterede klasser og grænseflader i pakker.

Brug af pakker under kodning giver mange fordele som:



    • Genanvendelighed: Klasser indeholdt i pakkerne til et andet program kan let genbruges
    • Navnekonflikter: Pakkerhjælpe os med at identificere en klasse entydigt, for eksempel kan vi have firma.salg.medarbejder og firma. markedsføring. medarbejder klasser
    • Kontrolleret adgang: Tilbud adgangsbeskyttelse såsom sroterede klasser, standardklasser og privat klasse
    • Datakapsling : De sgøre en måde at skjule klasser på, hvilket forhindrer andre programmer i at få adgang til klasser, der kun er beregnet til intern brug
    • Vedligeholdelse: Med pakker,du kan organisere dit projekt bedre og let finde relaterede klasser

Det er en god praksis at bruge pakker under kodning i Java. Som programmerer kan dulet finde ud af , grænseflader, enumerationer og annoteringer, der er relateret. Vi har to typer pakker i java.

Typer af pakker i Java

Baseret på om pakken er defineret af brugeren eller ej, er pakker opdelt i to kategorier:

  1. Indbyggede pakker
  2. Brugerdefinerede pakker

Indbyggede pakker

Indbyggede pakker eller foruddefinerede pakker er dem, der følger med som en del af (Java Development Kit) for at forenkle Java-programmørens opgave. De består af et stort antal foruddefinerede klasser og grænseflader, der er en del af Java API'er. Nogle af de almindeligt anvendte indbyggede pakker er java.lang, java.io, java.util, java.applet osv. Her er et simpelt program ved hjælp af en indbygget pakke.



pakke Edureka import 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 ('Elementerne på listen er:' + myList)}}

Produktion:

Elementerne på listen er: [3, 2, 1]

ArrayList-klassen tilhører java.util-pakken. For at bruge den skal vi importere pakken ved hjælp af importerklæringen. Den første linje i koden importer java.util.ArrayList importerer java.util-pakken og bruger som findes i delpakken.

Brugerdefinerede pakker

Brugerdefinerede pakker er dem, der er udviklet af brugere for at gruppere relaterede klasser, grænseflader og underpakker. Lad os ved hjælp af et eksempelprogram se, hvordan du opretter pakker, kompilerer Java-programmer inde i pakkerne og udfører dem.

Oprettelse af en pakke i Java

Oprettelse af en pakke i Java er en meget let opgave. Vælg et navn til pakken, og medtag en pakke kommando som den første sætning i Java-kildefilen. Java-kildefilen kan indeholde de klasser, grænseflader, enumerationer og annoteringstyper, som du vil medtage i pakken.For eksempel opretter følgende sætning en pakke med navnet MyPackage.

pakke MyPackage

Pakkesætningen specificerer simpelthen til hvilken pakke de definerede klasser tilhører ..

Bemærk: Hvis du udelader pakkeerklæringen, placeres klassens navne i standardpakken, som ikke har noget navn. Selvom standardpakken er fin til korte programmer, er den utilstrækkelig til rigtige applikationer.

Inkluderet en klasse i Java-pakke

Tiloprette en klasse inde i en pakke, skal duerklær pakkens navn som den første erklæring i dit program. Medtag derefter klassen som en del af pakken. Men husk, at en klasse kun kan have en pakkeerklæring. Her er et simpelt program til at forstå konceptet.

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 ('Maximum value of two tal er '+ num1)} andet {System.out.println (' Maksimumværdien af ​​to tal er '+ num2)}} offentlig statisk ugyldig hoved (String args []) {Sammenlign nuværende [] = ny Sammenlign [3] nuværende [1] = ny Sammenlign (5, 10) nuværende [2] = ny Sammenlign (123, 120) for (int i = 1 i<3 i++) { current[i].getmax() } } } 

Produktion:

Maksimumværdien på to tal er 10 Maksimumværdien på to tal er 123

Som du kan se, har jeg erklæret en pakke med navnet MyPackage og oprettet en klasse Sammenlign inden i den pakke. Java bruger filsystemmapper til at gemme pakker. Så dette program vil blive gemt i en fil som Sammenlign. Java og gemmes i mappen, der hedder MyPackage. Når filen bliver kompileret, opretter Java en .klasse fil og gem den i samme bibliotek. Husk at navnet på pakken skal være det samme som den mappe, under hvilken denne fil gemmes.

Du undrer dig måske over, hvordan du bruger denne sammenligningsklasse fra en klasse i en anden pakke?

Oprettelse af en klasse inde i pakke, mens du importerer en anden pakke

Nå, det er ret simpelt. Du skal bare importere det. Når den er importeret, kan du få adgang til den ved dens navn. Her er et eksempelprogram, der demonstrerer konceptet.

pakke Edureka importerer 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 ()} ellers {System.out.println ('Begge værdier er ens')}}}

Produktion:

Begge værdier er ens

Jeg har først erklæret pakken Edureka importerede derefter klassen Sammenligne fra pakken MyPackage. Så ordrennår vi opretter en klasse inde i en pakke, mens import af en anden pakke er,

  • Pakkedeklaration
  • Pakkeimport

Nå, hvis du ikke vil bruge importopgørelsen, er der et andet alternativ til at få adgang til en klassefil af pakken fra en anden pakke. Du kan bare bruge fuldt kvalificeret navn, mens du importerer en .

Brug af fuldt kvalificeret navn under import af en klasse

Her er et eksempel på at forstå konceptet. Jeg vil bruge den samme pakke, som jeg har erklæret tidligere i bloggen, MyPackage .

pakke Edureka public class Demo {public static void main (String args []) {int n = 10, m = 11 // Brug af fuldt kvalificeret navn i stedet for import MyPackage.Compare current = new MyPackage.Compare (n, m) if ( n! = m) {current.getmax ()} ellers {System.out.println ('Begge værdier er ens')}}}

Produktion:

Maksimumværdien på to tal er 11

I Demo-klassen har jeg i stedet for at importere pakken brugt det fuldt kvalificerede navn som f.eks MyPackage.Compare at skabe genstand for det. Da vi taler om import af pakker, kan du lige så godt tjekke konceptet med statisk import i Java.

Statisk import i Java

Statisk importfunktion blev introduceret i fra version 5. Det gør det muligt for Java-programmøren at få adgang til enhver statiskmedlem af en klasse direkte uden at bruge det fuldt kvalificerede navn.

pakke MyPackage import statisk java.lang.Math. * // statisk import import statisk java.lang.System. * // statisk import offentlig klasse StaticImportDemo {offentlig statisk ugyldig main (String args []) {dobbelt val = 64.0 dobbelt sqroot = sqrt (val) // Få adgang til sqrt () -metoden direkte out.println ('Sq. rod af' + val + 'er' + sqroot) // Vi behøver ikke bruge 'System.out}}
 Produktion: 
Sq. rod på 64.0 er 8.0

Selvom brug af statisk import indebærer mindre kodning, kan overbrug af det muligvis gøre programmet ulæseligt og uvedligeholdeligt. Lad os nu gå videre til det næste emne, adgangskontrol i pakker.

Adgangsbeskyttelse i Java-pakker

Du er måske opmærksom på forskellige aspekter af Java's adgangskontrolmekanisme og dens adgangsspecifikatorer . Pakker i Java tilføjer en anden dimension til adgangskontrol. Både klasser og pakker er et middel til datakapsling . Mens pakker fungerer som containere til klasser og andre underordnede pakker, fungerer klasser som containere til data og kode. På grund af dette samspil mellem pakker og klasser adresserer Java-pakker fire kategorier af synlighed for klassemedlemmer:

  • Underklasser i samme pakke
  • Ikke-underklasser i samme pakke
  • Underklasser i forskellige pakker
  • Klasser, der hverken er i samme pakke eller underklasser

Tabellen nedenfor giver enrigtigt billede af, hvilken type adgang der er mulig, og hvilken ikke, når du bruger pakker i Java:

Privat Ingen modifikator Beskyttet Offentlig

Samme klasse

Ja

Ja

Ja

Ja

Samme pakkeunderklasser

Ingen

Ja

Ja

Ja

Samme pakke ikke-underklasser

Ingen

Ja

Ja

Ja

implementere min bunke i java

Forskellige pakker underklasser

Ingen

Ingen

Ja

Ja

Forskellige pakker ikke-underklasser

Ingen

Ingen

Ingen

Ja

Vi kan forenkle dataene i ovenstående tabel som følger:

  1. Alt, der er erklæret offentligt, kan tilgås hvor som helst
  2. Alt, hvad der er erklæret privat, kan kun ses inden for denne klasse
  3. Hvis adgangsspecifikator ikke nævnes, er et element synligt for underklasser såvel som for andre klasser i samme pakke
  4. Endelig kan alt erklæret beskyttet element ses uden for din nuværende pakke, men kun til klasser, der underklasser din klasse direkte

På denne måde giver Java-pakker adgangskontrol til klasserne. Nå, dette indpakker konceptet med pakker i Java. Her er nogle punkter, som du skal huske på, når du bruger pakker i .

Punkter at huske

  • Hver klasse er en del af en pakke. Hvis du udelader pakkeerklæringen, placeres klassens navne i standardpakken
  • En klasse kan kun have en pakkeerklæring, men den kan have mere end en importpakkeerklæring
  • Navnet på pakken skal være det samme som det bibliotek, som filen gemmes under
  • Ved import af en anden pakke skal pakkedeklarationen være den første erklæring efterfulgt af pakkeimport

Nå, dette bringer os til slutningen af ​​denne 'Packages in Java' artikel. Vi lærtehvad en pakke er, og hvorfor vi skal bruge dem. Der er ingen tvivl om, at Java-pakken er en af ​​de vigtigste dele for effektive java-programmører. Det opgraderer ikke kun programmørens kodestil, men reducerer også meget ekstra arbejde.

Hvis du fandt denne artikel om 'Pakker i Java', skal du tjekke af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Vi er her for at hjælpe dig med hvert trin på din rejse, for at blive et ud over dette java-interviewspørgsmål, kommer vi med en læseplan, der er designet til studerende og fagfolk, der ønsker at være Java-udvikler.