- Java-Paket
- Beispielpaket
- Auf das Paket zugreifen
- Unterpaket
- Klassendatei in ein anderes Verzeichnis senden
- -classpath-Schalter
- 4 Möglichkeiten zum Laden der Klassendatei oder JAR-Datei
- So packen Sie zwei öffentliche Klassen in ein Paket
- Statischer Import
- Paketklasse
A Java-Paket ist eine Gruppe ähnlicher Arten von Klassen, Schnittstellen und Unterpaketen.
Pakete in Java können in zwei Formen kategorisiert werden: integrierte Pakete und benutzerdefinierte Pakete.
Es gibt viele integrierte Pakete wie Java, Lang, AWT, Javax, Swing, Net, Io, Util, SQL usw.
Hier erfahren wir detailliert, wie benutzerdefinierte Pakete erstellt und verwendet werden.
Bedingungsoperator in Java
Vorteil des Java-Pakets
1) Das Java-Paket wird verwendet, um die Klassen und Schnittstellen zu kategorisieren, damit sie einfach verwaltet werden können.
2) Das Java-Paket bietet Zugriffsschutz.
3) Das Java-Paket beseitigt Namenskonflikte.
Einfaches Beispiel eines Java-Pakets
Der Paketschlüsselwort wird verwendet, um ein Paket in Java zu erstellen.
//save as Simple.java package mypack; public class Simple{ public static void main(String args[]){ System.out.println('Welcome to package'); } }
So kompilieren Sie ein Java-Paket
Wenn Sie keine IDE verwenden, müssen Sie die folgenden Schritte befolgen Syntax unten angegeben:
javac -d directory javafilename
Für Beispiel
javac -d . Simple.java
Der Schalter -d gibt das Ziel an, an dem die generierte Klassendatei abgelegt werden soll. Sie können einen beliebigen Verzeichnisnamen wie /home (bei Linux), d:/abc (bei Windows) usw. verwenden. Wenn Sie das Paket im selben Verzeichnis behalten möchten, können Sie verwenden. (Punkt).
So führen Sie das Java-Paketprogramm aus
Sie müssen einen vollständig qualifizierten Namen verwenden, z. B. mypack.Simple usw., um die Klasse auszuführen.
Kompilieren: javac -d . Simple.java |
Laufen: Java mypack.Simple |
Output:Welcome to package
-d ist ein Schalter, der dem Compiler mitteilt, wo die Klassendatei abgelegt werden soll, d. h. sie stellt das Ziel dar. Der . stellt den aktuellen Ordner dar. |
Wie greife ich von einem anderen Paket aus auf ein Paket zu?
Es gibt drei Möglichkeiten, von außerhalb des Pakets auf das Paket zuzugreifen.
- Paket importieren.*;
- import package.classname;
- vollständig qualifizierter Name.
1) Paketname verwenden.*
Wenn Sie package.* verwenden, sind alle Klassen und Schnittstellen dieses Pakets zugänglich, nicht jedoch die Unterpakete.
Das Schlüsselwort import wird verwendet, um die Klassen und Schnittstellen eines anderen Pakets für das aktuelle Paket zugänglich zu machen.
Beispiel für ein Paket, das den Paketnamen importiert.*
//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) Verwendung von Paketname.Klassenname
Wenn Sie package.classname importieren, ist nur die deklarierte Klasse dieses Pakets zugänglich.
Beispiel für ein Paket durch Import Paket.Klassenname
//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) Verwendung eines vollständig qualifizierten Namens
Wenn Sie einen vollständig qualifizierten Namen verwenden, ist nur die deklarierte Klasse dieses Pakets zugänglich. Jetzt ist kein Import erforderlich. Sie müssen jedoch jedes Mal einen vollständig qualifizierten Namen verwenden, wenn Sie auf die Klasse oder Schnittstelle zugreifen.
Es wird im Allgemeinen verwendet, wenn zwei Pakete denselben Klassennamen haben, z. Die Pakete java.util und java.sql enthalten die Date-Klasse.
Beispiel für ein Paket mit vollständig qualifiziertem Importnamen
//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
Hinweis: Wenn Sie ein Paket importieren, werden Unterpakete nicht importiert.
Wenn Sie ein Paket importieren, werden alle Klassen und Schnittstellen dieses Pakets importiert, mit Ausnahme der Klassen und Schnittstellen der Unterpakete. Daher müssen Sie auch das Unterpaket importieren.
Hinweis: Die Reihenfolge des Programms muss „Paket“, dann „Import“ und dann „Klasse“ sein.
Unterpaket in Java
Das Paket innerhalb des Pakets wird als bezeichnet Unterpaket . Es sollte erstellt werden um das Paket weiter zu kategorisieren .
Nehmen wir ein Beispiel: Sun Microsystem hat ein Paket namens Java definiert, das viele Klassen wie System, String, Reader, Writer, Socket usw. enthält. Diese Klassen repräsentieren eine bestimmte Gruppe, z. B. Die Klassen „Reader“ und „Writer“ dienen der Eingabe/Ausgabe, die Klassen „Socket“ und „ServerSocket“ dienen der Vernetzung usw. und so weiter. Daher hat Sun das Java-Paket in Unterpakete wie lang, net, io usw. unterteilt und die auf Eingabe/Ausgabe bezogenen Klassen in io-Pakete, Server- und ServerSocket-Klassen in net-Pakete usw. eingefügt.
Der Standard zum Definieren eines Pakets ist domain.company.package, z. B. com.javatpoint.bean oder org.sssit.dao.
Beispiel für ein Unterpaket
package com.javatpoint.core; class Simple{ public static void main(String args[]){ System.out.println('Hello subpackage'); } }
Kompilieren: javac -d . Simple.java |
Laufen: Java com.javatpoint.core.Simple |
Output:Hello subpackage
Wie sende ich die Klassendatei an ein anderes Verzeichnis oder Laufwerk?
Es gibt ein Szenario, in dem ich die Klassendatei der A.java-Quelldatei im Klassenordner des Laufwerks c: ablegen möchte. Zum Beispiel:
//save as Simple.java package mypack; public class Simple{ public static void main(String args[]){ System.out.println('Welcome to package'); } }
Kompilieren:
e:sources> javac -d c:classes Simple.java
Laufen:
Um dieses Programm aus dem Verzeichnis e:source auszuführen, müssen Sie den Klassenpfad des Verzeichnisses festlegen, in dem sich die Klassendatei befindet. |
e:sources> set classpath=c:classes;.; |
e:sources> java mypack.Simple |
Eine andere Möglichkeit, dieses Programm über den Schalter -classpath von Java auszuführen:
Der Schalter -classpath kann mit javac und dem Java-Tool verwendet werden.
Um dieses Programm aus dem Verzeichnis e:source auszuführen, können Sie den Java-Schalter -classpath verwenden, der angibt, wo nach der Klassendatei gesucht werden soll. Zum Beispiel:
Holen Sie sich das aktuelle Datum in Java
e:sources> java -classpath c:classes mypack.Simple
Output:Welcome to package
Möglichkeiten zum Laden der Klassendateien oder JAR-Dateien
Es gibt zwei Möglichkeiten, die Klassendateien temporär und dauerhaft zu laden. |
- Vorübergehend
- Durch Festlegen des Klassenpfads in der Eingabeaufforderung
- Durch den Schalter -classpath
- Dauerhaft
- Durch Festlegen des Klassenpfads in den Umgebungsvariablen
- Durch Erstellen der JAR-Datei, die alle Klassendateien enthält, und Kopieren der JAR-Datei in den Ordner jre/lib/ext.
Regel: Eine Java-Quelldatei darf nur eine öffentliche Klasse enthalten und diese muss unter dem Namen der öffentlichen Klasse gespeichert werden.
//save as C.java otherwise Compilte Time Error class A{} class B{} public class C{}
Wie packe ich zwei öffentliche Klassen in ein Paket?
Wenn Sie zwei öffentliche Klassen in ein Paket einfügen möchten, müssen Sie über zwei Java-Quelldateien verfügen, die eine öffentliche Klasse enthalten, aber den Paketnamen beibehalten. Zum Beispiel: |
//save as A.java package javatpoint; public class A{}
//save as B.java package javatpoint; public class B{}
Was ist die statische Importfunktion von Java5?
Klicken Sie auf die statische Importfunktion von Java5. |
Was ist mit der Paketklasse?
Klicken Sie für die Paketklasse |