Paket in Java

8

Wann verwenden wir das Schlüsselwort package? Was bedeutet das?

Angenommen, ich schreibe den folgenden Code:

%Vor%

Was macht dieses Paket? Ich erhalte eine masnun.class-Datei, die nicht ausgeführt wird. Ich bin neu in Java. Kann mir bitte jemand erklären?

Danke

    
masnun 24.07.2010, 13:16
quelle

6 Antworten

13

Da ich kein Fan dieser anderen Antworten bin, schreibe ich mein eigenes.

Beispiele aus der realen Welt:

Stellen Sie sich ein "Paket" als eine einfache Möglichkeit für eine Java-Klasse vor, auf eine andere zu verweisen.

Sagen wir, ich habe diese große Kiste auf meinem Dachboden. Ich habe einen Taschenrechner, Kompass, Winkelmesser usw. Ich kann diese Box MathTools bezeichnen.

Ein anderes Beispiel wäre, all Ihre Bilder aufzunehmen und sie in den Ordner Pictures in Ihren Dokumenten zu platzieren. Von dort können Sie sie in Spring Break 2009 oder [Insert Name Here]'s Party aufteilen.

Wie verhält es sich mit Java? Nun, schauen wir uns das java.util -Paket an (Sie können dies mit import java.util.*; referenzieren. Sie haben ArrayLists, Strings, Random, etc., die in den meisten Java-Programmen verwendet werden (übliche "Dienstprogramme", wenn Sie bevorzugen) Alle sind übersichtlich im selben Paket organisiert, so dass Programmierer sie leicht referenzieren können ( import java.util.*; ).

Einfache Anwendung:

Nehmen wir an, dass wir alle Dateien in einem kleinen Würfelsimulator in C:/Program Files/Java Project/my/proj/ finden können (es ist wahrscheinlich, dass diese Datei nicht auf Ihrem Computer existiert, sondern tun Sie nur einen Moment).

Sie haben 3 Dateien: Main.java , Dice.java und DiceRoller.java . Alle davon sind unten gezeigt:

.

"C: / ProgramFiles / Java-Projekt / my / proj / main / Main.java ":

%Vor%

"C: / Programmdateien / Java-Projekt / mein / proj / sims / Dice.java ":

%Vor%

"C: / Programmdateien / Java-Projekt / mein / proj / sims / DiceRoller.java ":

%Vor%

.

Dinge zu beachten:

  • Main.java ist in my.proj.main verpackt
  • Dice.java ist in my.proj.sims verpackt
  • Main.java muss my.proj.sims.Dice importieren, um ein Dice -Objekt zu erstellen und seine Methoden zu verwenden, da es sich in einem anderen Paket als Dice.java befindet.
  • DiceRoller.java muss my.proj.sims.Dice nicht importieren, da es sich im selben Paket wie Dice.java befindet und der Compiler die beiden automatisch assoziiert.

.

Import ist ein Befehl zum Laden der Funktionalität einer Klasse in die aktuelle Datei. Schauen Sie sich zum Beispiel Dice.java an. Damit es ein Objekt Random mit der Methode nextInt() erstellt, muss es die Klasse Random aus dem Paket java.util.* importieren.

.

Sie werden vielleicht bemerken, dass einige Leute es vorziehen, java.util.* anstelle von java.util.Random , java.util.ArrayList usw. zu verwenden. Was die * im Wesentlichen bedeutet, ist jede Klasse innerhalb von java.util . Wenn Sie import java.util.* ausführen, werden die Klassen Random, String, ArrayList usw. importiert.

.

Hoffe das klärt die Dinge auf. Bitte überlegen Sie, ob dies Ihnen geholfen hat:)

    
Justian Meyer 24.07.2010, 15:36
quelle
3

Es ist sehr wahrscheinlich, dass eine Software Klassen namens Logger, Datenbank, Verbindung, Tabelle usw. hat. Pakete trennen den Geltungsbereich dieser Klassen, sodass keine Probleme mit Duplikaten auftreten Klassennamen.

Einige Beispiele:

  • java. *
  • org.apache. **
  • com.IhreUnternehmen.IhrProjekt.

Wenn Sie Klassen aus einem bestimmten Paket verwenden möchten, müssen Sie diese importieren.

%Vor%

oder

%Vor%     
stacker 24.07.2010 13:24
quelle
2

So können Sie Ihre Quelldateien organisieren. Ein Paket enthält mehrere Klassendateien, eine Klassendatei enthält nur eine öffentliche Klasse, eine Klasse enthält mehrere Methoden und eine Variable.

    
Truong Ha 24.07.2010 13:30
quelle
2

Die Paketanweisung in Java wird verwendet, um mehrere verwandte Klassen zu gruppieren. Wenn Sie Klassen haben, die sich ausschließlich mit Datenbankinteraktionen befassen, wäre es logisch, alle unter

zu setzen %Vor%

Dies bietet auch den Vorteil des Namensabstands. Denken Sie daran, dass zur Laufzeit ein Teil einer Java-Klassenidentität der vollständig qualifizierte Name ist, dh der Klassenname, dem der Paketname vorangestellt ist, wie in

%Vor%

Wenn Ihre Anwendung wächst, um mehr als ein paar Klassen zu beherbergen, ist es sowohl praktisch als auch eine gute Übung, sie in Paketen zu organisieren.

    
Jose Diaz 24.07.2010 14:38
quelle
1

"Pakete sind nichts anderes als die Art und Weise, wie wir Dateien in verschiedenen Verzeichnissen organisieren, abhängig von ihrer Funktionalität, ihrer Benutzerfreundlichkeit und ihrer Kategorie." aus: Ссылка

Im Grunde sagen Sie in Ihrem Beispiel, dass die Klasse "masnun" das Paket "package masnun" ist. Also im Wesentlichen in anderen Klassen können Sie diese Klasse durch Import Masnun verweisen; Welcher importiert die Klasse masnun, die sich im masnun-Paket befindet.

    
Chris 24.07.2010 13:19
quelle
0

In Layman Begriff, nehmen wir an, dass es mehrere Abteilung in einer Hochschule wie Wissenschaft, Kunst usw. gibt. Jetzt hat jede Abteilung einige Mitarbeiter. In Bezug auf Objekt kann es mehrere Employee-Klasse geben, so gibt es Einschränkung in Java, dass wir nicht zwei Klassen als gleichen Namen setzen können. So sollte Programmierer verschiedene Pakete machen, um verschiedene Klassen mit demselben Namen in der Anwendung zu speichern.

    
Deepak Sharma 15.03.2017 11:25
quelle

Tags und Links