- Java-pakke
- Eksempel på pakke
- Adgang til pakke
- Underpakke
- Sender klassefil til en anden mappe
- -klassesti-omskifter
- 4 måder at indlæse klassefilen eller jar-filen på
- Sådan lægger du to offentlige klasser i en pakke
- Statisk import
- Pakke klasse
EN java-pakke er en gruppe af lignende typer klasser, grænseflader og underpakker.
Pakke i java kan kategoriseres i to former, indbygget pakke og brugerdefineret pakke.
Der er mange indbyggede pakker såsom java, lang, awt, javax, swing, net, io, util, sql osv.
Her vil vi have den detaljerede læring i at oprette og bruge brugerdefinerede pakker.
deaktivering af udviklertilstand for Android
Fordel ved Java-pakken
1) Java-pakken bruges til at kategorisere klasser og grænseflader, så de nemt kan vedligeholdes.
2) Java-pakken giver adgangsbeskyttelse.
3) Java-pakken fjerner navnekollision.
Simpelt eksempel på java-pakke
Det pakke søgeord bruges til at oprette en pakke i java.
//save as Simple.java package mypack; public class Simple{ public static void main(String args[]){ System.out.println('Welcome to package'); } }
Sådan kompileres java-pakken
Hvis du ikke bruger nogen IDE, skal du følge syntaks Givet nedenfor:
javac -d directory javafilename
Til eksempel
javac -d . Simple.java
Switchen -d angiver destinationen, hvor den genererede klassefil skal placeres. Du kan bruge et hvilket som helst mappenavn som /home (i tilfælde af Linux), d:/abc (i tilfælde af Windows) osv. Hvis du vil beholde pakken i samme mappe, kan du bruge . (prik).
Sådan kører du java-pakkeprogram
Du skal bruge fuldt kvalificeret navn f.eks. mypack.Simpelt osv. at køre klassen.
At kompilere: javac -d . Simple.java |
At løbe: java mypack.Simpel |
Output:Welcome to package
-d er en switch, der fortæller compileren, hvor klassefilen skal placeres, dvs. den repræsenterer destinationen. Det . repræsenterer den aktuelle mappe. |
Hvordan får man adgang til pakken fra en anden pakke?
Der er tre måder at få adgang til pakken uden for pakken.
- importpakke.*;
- import pakke.klassenavn;
- fuldt kvalificeret navn.
1) Bruger pakkenavn.*
Hvis du bruger package.*, vil alle klasser og grænseflader i denne pakke være tilgængelige, men ikke underpakker.
Importnøgleordet bruges til at gøre klasserne og grænsefladen for en anden pakke tilgængelige for den aktuelle pakke.
Eksempel på pakke, der importerer pakkenavnet.*
//save by A.java package pack; public class A{ public void msg(){System.out.println('Hello');} }
//save by B.java package mypack; import pack.*; class B{ public static void main(String args[]){ A obj = new A(); obj.msg(); } }
Output:Hello
2) Brug af pakkenavn.klassenavn
Hvis du importerer pakke.klassenavn, vil kun den erklærede klasse af denne pakke være tilgængelig.
Eksempel på pakke ved import pakke.klassenavn
//save by A.java package pack; public class A{ public void msg(){System.out.println('Hello');} }
//save by B.java package mypack; import pack.A; class B{ public static void main(String args[]){ A obj = new A(); obj.msg(); } }
Output:Hello
3) Brug af fuldt kvalificeret navn
Hvis du bruger et fuldt kvalificeret navn, vil kun den erklærede klasse af denne pakke være tilgængelig. Nu er der ingen grund til at importere. Men du skal bruge et fuldt kvalificeret navn, hver gang du får adgang til klassen eller grænsefladen.
Det bruges generelt, når to pakker har samme klassenavn, f.eks. java.util og java.sql pakker indeholder Dato klasse.
Eksempel på pakke ved import fuldt kvalificeret navn
//save by A.java package pack; public class A{ public void msg(){System.out.println('Hello');} }
//save by B.java package mypack; class B{ public static void main(String args[]){ pack.A obj = new pack.A();//using fully qualified name obj.msg(); } }
Output:Hello
Bemærk: Hvis du importerer en pakke, importeres underpakker ikke.
Hvis du importerer en pakke, importeres alle klasserne og grænsefladen for den pakke, undtagen klasserne og grænsefladerne for underpakkerne. Derfor skal du også importere underpakken.
Bemærk: Sekvensen af programmet skal være pakke og derefter importere derefter klasse.
Underpakke i java
Pakken inde i pakken kaldes underpakke . Det bør skabes at kategorisere pakken yderligere .
Lad os tage et eksempel, Sun Microsystem har fundet en pakke ved navn java, der indeholder mange klasser som System, String, Reader, Writer, Socket osv. Disse klasser repræsenterer en bestemt gruppe, f.eks. Læser- og Writer-klasser er til input/output-drift, Socket- og ServerSocket-klasser er til netværk osv. og så videre. Så Sun har underkategoriseret java-pakken i underpakker såsom lang, net, io osv. og lagt de Input/Output-relaterede klasser i io-pakken, Server- og ServerSocket-klasser i net-pakker og så videre.
Standarden for at definere pakke er domain.company.package f.eks. com.javatpoint.bean eller org.sssit.dao.
Eksempel på underpakke
package com.javatpoint.core; class Simple{ public static void main(String args[]){ System.out.println('Hello subpackage'); } }
At kompilere: javac -d . Simple.java |
At løbe: java com.javatpoint.core.Simple |
Output:Hello subpackage
Hvordan sender man klassefilen til en anden mappe eller et andet drev?
Der er et scenarie, jeg vil lægge klassefilen til A.java-kildefilen i klassemappen på c: drev. For eksempel:
//save as Simple.java package mypack; public class Simple{ public static void main(String args[]){ System.out.println('Welcome to package'); } }
At kompilere:
e:sources> javac -d c:classes Simple.java
At løbe:
For at køre dette program fra biblioteket e:source, skal du indstille klassestien til det bibliotek, hvor klassefilen ligger. |
e:sources> sæt klassesti=c:klasser;.; |
e:sources> java mypack.Simple |
En anden måde at køre dette program på med -classpath switch i java:
-classpath-switchen kan bruges med javac og java-værktøjet.
For at køre dette program fra mappen e:source, kan du bruge -classpath switch af java, der fortæller, hvor du skal lede efter klassefil. For eksempel:
intelligent idé vs formørkelse
e:sources> java -classpath c:classes mypack.Simple
Output:Welcome to package
Måder at indlæse klassefilerne eller jar-filerne på
Der er to måder at indlæse klassefilerne midlertidigt og permanent på. |
- Midlertidig
- Ved at indstille klassestien i kommandoprompten
- By-classpath switch
- Permanent
- Ved at indstille klassestien i miljøvariablerne
- Ved at oprette jar-filen, der indeholder alle klassefilerne, og kopiere jar-filen i mappen jre/lib/ext.
Regel: Der kan kun være én offentlig klasse i en java-kildefil, og den skal gemmes med det offentlige klassenavn.
//save as C.java otherwise Compilte Time Error class A{} class B{} public class C{}
Hvordan lægger man to offentlige klasser i en pakke?
Hvis du vil lægge to offentlige klasser i en pakke, skal du have to java-kildefiler, der indeholder en offentlig klasse, men behold pakkenavnet det samme. For eksempel: |
//save as A.java package javatpoint; public class A{}
//save as B.java package javatpoint; public class B{}
Hvad er statisk importfunktion i Java5?
Klik på Statisk import-funktion i Java5. |
Hvad med pakkeklassen?
Klik for Pakkeklasse |