Latest web development tutorials

Java-Paket (Paket)

Um die Klasse zu besser zu organisieren, bietet Java einen Paket-Mechanismus für die Differenz zwischen dem Klassennamen des Namespace.

Die Rolle des Pakets

  • Eine ähnliche Funktion oder ähnlichen Organisation der Klasse oder Schnittstelle im selben Paket, zu finden und einfach Klasse.
  • 2 als den gleichen Ordner, das Paket verwendet auch das Speicherverzeichnisbaum. Klassen im selben Paket Name ist anders, ein anderes Paket Namen der Klasse gleich ist, während gleichzeitig in der gleichen Klassennamen zwei verschiedene Arten von Paketen rufen, den Paketnamen hinzugefügt Unterscheidung werden sollte. Somit wird der Paketname Konflikte zu vermeiden.
  • 3-Paket definiert auch die Zugriffsrechte, die Klassen haben Zugriff auf das Paket ein Paket von Klassen zuzugreifen.

Java verwendet Paket (Paket) Dieser Mechanismus Namenskonflikte zu verhindern, ist so konzipiert, Zutrittskontrolle, suchen die Bereitstellung und suchen Klasse (Klasse), Schnittstellen, Aufzählungen (Aufzählungen) und Kommentare (Anmerkung) und dergleichen.

Package-Anweisung Syntax:

package pkg1[.pkg2[.pkg3…]];

Zum Beispiel kann eine Datei, um ihren Inhalt Something.java

package net.java.util
public class Something{
   ...
}

Dann sollte es der Weg net / java / util / Something.java so gespeichert werden. Paket (Paket) Rolle unterscheidet sich Java-Programm zu klassifizieren gespeichert leichter von anderen Java-Programm aufgerufen werden.

Ein Paket (Paket) kann als ein Satz von Typen (Klassen, Schnittstellen, Aufzählungen und Annotation) definiert werden, miteinander verbunden Zugriffsschutz zu bieten und Namensraum-Management-Funktionen für diese Typen.

Hier sind einige von Java im Paket:

  • java.lang- verpackt Basisklasse
  • Java.io- Funktion enthält Eingabe- und Ausgabefunktionen

Entwickler können ihre eigenen Satz von Klassen und Schnittstellen setzen, verpackt und Ihr eigenes Paket zu definieren. Und in der tatsächlichen Entwicklung gefördert werden soll, dies zu tun, wenn Sie die Implementierungsklasse vervollständigen, verwandte Klassen gruppiert, so dass andere Programmierer leichter bestimmen können, welche Klassen, Interfaces, Aufzählungen und Kommentare sind .

Da schafft das Paket einen neuen Namensraum (Namespace), also ohne Konflikte mit einem anderen Paketnamen zu benennen. Verwenden Sie dieses Paket Mechanismus, einfacher Zugriffskontrolle zu implementieren, und lassen Sie die entsprechende Klasse leichter lokalisieren.


Neues Paket

Erstellen Sie ein Paket, benötigen Sie einen geeigneten Namen für dieses Paket zu nehmen. Wenn dann eine Quelldatei, die die anderen Klassen angeboten, dieses Paket enthält, Schnittstelle, Kommentierung oder Aufzählungstyp, das Paket diese Erklärung muss zu Beginn dieser Quelldatei platziert werden.

Paket sollte in der ersten Zeile der Quelldatei deklariert werden für jede Datei Quelle nur eine Paketanweisung haben kann, die Datei für jeden Typ sind auf sie angewendet.

Wenn Sie nicht über ein Paket-Anweisung in der Quelldatei verwenden, dann eine der Klassen, Funktionen, Aufzählung, Kommentare usw. werden in einem ungenannten Paket (unbenannt Paket) platziert werden in.

Beispiel

Lassen Sie uns ein Beispiel an, dass ein Paket die Tiere genannt schafft. Im Allgemeinen verwenden Kleinbuchstaben Namensgebung Klassen, Schnittstellen zu vermeiden, und den Namen des Konflikts.

Verbinden Sie ein Paket Schnittstelle Tiere (Schnittstelle):

/* 文件名: Animal.java */
package animals;

interface Animal {
   public void eat();
   public void travel();
}

Als nächstes wird in dem gleichen Paket hinzufügen, die die Schnittstelle implementiert:

package animals;

/* 文件名 : MammalInt.java */
public class MammalInt implements Animal{

   public void eat(){
      System.out.println("Mammal eats");
   }

   public void travel(){
      System.out.println("Mammal travels");
   } 

   public int noOfLegs(){
      return 0;
   }

   public static void main(String args[]){
      MammalInt m = new MammalInt();
      m.eat();
      m.travel();
   }
} 

Dann kompilieren Sie diese beiden Dateien und steckte sie in ein Unterverzeichnis namens Tiere. Verwenden Sie den folgenden Befehl ausführen:

$ mkdir animals
$ cp Animal.class  MammalInt.class animals
$ java animals/MammalInt
Mammal eats
Mammal travel

Import Schlüsselwörter

Um ein Mitglied eines Pakets zu verwenden, müssen wir ausdrücklich das Paket in dem Java-Programm importieren. Mit Hilfe der "Import" Anweisung, diese Funktion auszuführen.

In Java-Quelldatei Import-Anweisungen nach der Paketanweisung befinden, alle zuvor definierten Klassen sollten Sie nicht können, können Sie auch mehrere haben, seine Syntax ist:

import package1[.package2…].(classname|*);

Wenn ein Paket, eine Klasse, die Sie dieses Paket in einer anderen Klasse verwendet werden soll, dann kann der Paketname weggelassen werden.

Beispiel

Die folgende Abrechnung Paket enthält bereits die Employee-Klasse, dann eine Klasse der Abrechnungspaket Boss hinzufügen. Wenn Boss Klasse Employee Referenzklasse keine Instanzen Abrechnung Präfix Boss Klasse folgt verwenden können.

package payroll;

public class Boss
{
   public void payEmployee(Employee e)
   {
      e.mailCheck();
   }
}

Was ist, wenn die Klasse ist nicht Boss Lohn-Paket wird? Boss-Klasse muss eine der folgenden Methoden verwenden, um andere Klassen im Paket verweisen

Verwenden Sie den vollständigen Namen der Klasse Beschreibung, wie zum Beispiel:

payroll.Employee

Mit der Einführung von Import Keywords, verwenden Sie den Platzhalter "*"

import payroll.*;

Mit Import Stichwort einführt Klasse Employee

import payroll.Employee;

Hinweis:

Die Klassendatei eine beliebige Anzahl von Einfuhranmeldung enthalten. Einfuhranmeldung muss nach der Paketanweisung sein, vor der Klassendeklaration.


Paket-Verzeichnisstruktur

Klasse auf der Verpackung haben zwei Hauptergebnisse:

  • Paketname wird Teil des Klassennamens, wie wir früher diskutiert.
  • Paketname muss mit dem entsprechenden Byte-Code in der gleichen Verzeichnisstruktur übereinstimmen übereinstimmen.

Hier ist eine einfache Möglichkeit, Ihre Dateien in Java zu verwalten:

Die Klassen, Schnittstellen und andere Arten von Quellcode in einem Text, der Name dieser Datei ist der Name des Typs und Erweiterung .java. Zum Beispiel:

// 文件名 :  Car.java

package vehicle;

public class Car {
   // 类实现  
}

Als nächstes werden die Quelldateien in einem Verzeichnis, das Verzeichnisnamen in die entsprechende Klasse des eigenen Pakets.

....\vehicle\Car.java

Nun ist die richtige Klassennamen und den Pfad wird wie folgt aussehen:

  • Klassenname -> vehicle.Car

  • Pathname -> Fahrzeug \ Car.java (in Scheiben)

Typischerweise verwendet ein Unternehmen seine umgekehrte Form der Internet-Domain-Namen als Paketnamen, zum Beispiel: die Internet-Domain ist apple.com, alle Paketnamen sind in com.apple Anfang. Jeder Paketname auf einen Teil eines Unterverzeichnis entspricht.

Zum Beispiel: die entsprechenden sein sollte wie die folgende Reihe von Unterverzeichnissen Das Unternehmen hat eine com.apple.computers das Paket, das eine bekannte Dell.java Quelldatei enthält,:

....\com\apple\computers\Dell.java

Kompilieren Zeit erzeugt der Compiler eine andere Ausgabedatei ist der Name der Ausgabedatei den Namen dieser Art in der Pakettyp jeder Klasse, Schnittstelle definiert ist, und als Erweiterung .class Suffix hinzugefügt. Zum Beispiel:

// 文件名: Dell.java

package com.apple.computers;
public class Dell{
      
}
class Ups{
      
}

Nun verwenden wir die Option -d um die Datei zu kompilieren, wie folgt:

$javac -d . Dell.java

Dies wird so legen Sie die Datei zu kompilieren:

.\com\apple\computers\Dell.class.\com\apple\computers\Ups.class

Sie können, wie dies in der Schnittstelle definiert alle \ com \ Apple \ Computer \ Klasse zu importieren:

import com.apple.computers.*;

.class-Dateien kompiliert nach und sollten Quelldateien .JAVA, sie in dem Verzeichnis abgelegt werden, sollten mit dem Namen des Pakets entsprechen. Jedoch erfordern der Pfad nicht .class-Datei mit Pfad .JAVA gleichen entspricht. Sie können separate Quelle und Klassen Verzeichnisse organisieren.

<path-one>\sources\com\apple\computers\Dell.java
<path-two>\classes\com\apple\computers\Dell.class

Auf diese Weise können Sie Ihre Klassen-Verzeichnis zu anderen Programmierern teilen, anstatt ihre Quelle zu offenbaren. Auf diese Weise verwalten Quell- und Klassendateien kann der Compiler und Java Virtual Machine (JVM) können Sie alle Arten im Programm verwendet finden.

Absolute Verzeichnispfade Klasse namens Klassenpfad. Stellen Sie in der Systemvariablen CLASSPATH. Compiler und die Java Virtual Machine von dem Paketnamen zum Klassenpfad später Wegebau .class-Datei.

<Weg- zwei> \ Klassen ist die Klasse Pfad, den Paketnamen ist com.apple.computers, und der Compiler und JVM wird in <Pfad zwei> \ Classes \ com \ Apple \ compters die .class-Dateien.

Ein Klassenpfad kann mehrere Pfade enthalten. Multi-Pfad sollte durch ein Trennzeichen getrennt werden. Standardmäßig finden die Compiler und JVM das aktuelle Verzeichnis. JAR-Datei der Java-Plattform, nach der jeweiligen Klasse enthält, so dass sie auf ein Verzeichnis in dem Klassenpfad Standard.


Einstellung Systemvariable CLASSPATH

Verwenden Sie den folgenden Befehl, um den aktuellen CLASSPATH Variable anzuzeigen:

  • Windows-Plattformen (DOS-Kommandozeile) -> C: \> set CLASSPATH
  • UNIX-Plattformen (Bourne-Shell unter) ->% echo $ CLASSPATH
Entfernen Sie die aktuelle Variable CLASSPATH Inhalt:
  • Windows-Plattformen (DOS-Kommandozeile) -> C: \> set CLASSPATH =
  • UNIX-Plattformen (Bourne-Shell unter) ->% ungesetzt CLASSPATH; export CLASSPATH

Einstellung CLASSPATH Variable:

  • Windows-Plattformen (DOS-Kommandozeile) -> set CLASSPATH = C: \ users \ jack \ java \ classes
  • UNIX-Plattformen (Bourne-Shell unter) ->% CLASSPATH = / home / Buchse / java / classes; export CLASSPATH