Unterschied zwischen Paketen und Schnittstellen in Java

Autor: Laura McKinney
Erstelldatum: 2 April 2021
Aktualisierungsdatum: 17 Kann 2024
Anonim
Programmerpraktikum Java Lerneinheit 14: Ereignisbehandlung
Video: Programmerpraktikum Java Lerneinheit 14: Ereignisbehandlung

Inhalt


Pakete und Schnittstellen fungieren beide als Container. Der Inhalt in Paketen und Schnittstellen kann von den Klassen verwendet werden, indem er entsprechend importiert und implementiert wird. Der grundlegende Unterschied zwischen Paketen und Schnittstellen besteht darin, dass ein Paket eine Gruppe von Klassen und Schnittstellen enthält, während eine Schnittstelle Methoden und Felder enthält. Sehen wir uns einige andere Unterschiede anhand der Vergleichstabelle an.

  1. Vergleichstabelle
  2. Definition
  3. Hauptunterschiede
  4. Fazit

Vergleichstabelle

Grundlage für den VergleichPaketeSchnittstellen
BasicPakete sind eine Gruppe von Klassen und / oder Schnittstellen zusammen.Schnittstellen sind eine Gruppe von abstrakten Methoden und konstanten Feldern.
StichwortPakete werden mit dem Schlüsselwort "Package" erstellt.Das Interface wird mit dem Schlüsselwort "Interface" erstellt.
Syntaxpackage package_name;
public class class_name {
.
(Körper der Klasse)
.
}
interface interface_name {
variable Aussage;
Methodendeklaration;
}
ZugriffEin Paket kann importiert werden Eine Schnittstelle kann durch eine andere Schnittstelle erweitert und von der Klasse implementiert werden.
Zugriffsschlüsselwort Pakete können mit dem Schlüsselwort "import" importiert werden.Schnittstellen können mit dem Schlüsselwort "implement" implementiert werden.


Definition von Paketen

Pakete sind eine Sammlung oder Gruppen von Klassen und Interfaces. Die Klassen in Paketen sind in gewissem Umfang oder durch Vererbung miteinander verwandt. Sie können Ihr Paket auch erstellen und für Ihr Programm verwenden.

Ein Paket erstellen

Befolgen Sie zum Erstellen eines Pakets die folgenden Schritte.

  1. Öffnen Sie eine Datei und deklarieren Sie den Namen des Pakets oben in der Datei, so wie der Paketname der Name ist, den Sie dem Paket geben möchten.
  2. Als Nächstes definieren Sie eine Klasse, die Sie in das Paket einfügen möchten, und denken Sie daran, dass Sie sie für öffentlich erklären.
  3. Speichern Sie die Datei als .java-Datei und kompilieren Sie die Datei. Für diese Datei wird dann ".class" abgerufen.
  4. Um ein Paket für diese Datei zu erstellen, wird der Befehl "javac -d" verwendet. dateiname.java. Sie können sehen, dass das Paket erstellt wurde, das eine ".class" -Datei im aktuellen Verzeichnis enthält. Um es in das übergeordnete Verzeichnis zu legen, verwenden Sie “javac -d. . dateiname.java ”.
  5. Sie können auch ein Unterpaket erstellen, indem Sie den Namen des Unterpakets oben in der Datei angeben.

Paket Mypackage; öffentliche Klasse myclass {public void displayMypackage () {system.out.ln ("Methode displayMypackage der Klasse myclass des Pakets Mypackage"); }

Verwenden des Pakets


Die im Verzeichnis erstellten oder verfügbaren Pakete können mithilfe einer import-Anweisung im Programm verwendet werden. Das Schlüsselwort zum Importieren aller Pakete in Ihrem Programm lautet „import“. Die import-Anweisung kann auf zwei Arten geschrieben werden, oder Sie können sagen, dass es zwei Möglichkeiten gibt, auf ein beliebiges Paket zuzugreifen. Wenn Sie eine bestimmte Klasse aus einem Paket verwenden möchten, folgt nach dem Schlüsselwort "import" der Paketname, gefolgt vom Punktoperator und dem Klassennamen, den Sie aus dem Paket verwenden möchten. Zweitens, wenn Sie viele Klassen verwenden möchten, die in den Paketen enthalten sind, folgt dem Schlüsselwort import der Paketname, gefolgt vom Punkt und dem Operator "*".

Paketname importieren. Klassenname; oder importieren Sie package_name. *;

Im obigen Code sehen Sie das Zeichen *, das angibt, dass die zweite Methode alle in den Paketen enthaltenen Klassen importiert.

Betrachten wir nun die Verwendung des Pakets anhand eines Beispiels.

Mypackage importieren. myclass {class TestMypackage {public static void main (Zeichenkettenargumente) {myclass ob1 = new myclass (); ob1.displayMypackage (); }} // Ausgabemethode displayMypackage der Klasse myclass des Pakets Mypackage.

In obigem Code hat die Klasse TestMypackage das Paket Mypackage importiert und die Methode displayMypackage () verwendet.

Definition der Schnittstelle

Interface ist eine Art Klasse, unterscheidet sich jedoch in gewissem Sinne davon, dass die in der Schnittstelle deklarierten Methoden abstrakt sind, was bedeutet, dass die Methoden nur deklariert, aber nicht definiert sind. Die Felder in der Schnittstelle sind immer öffentlich, statisch und endgültig. Die Felder müssen zum Zeitpunkt der Deklaration initialisiert werden. Die von der Schnittstelle deklarierten Methoden werden von der Klasse definiert, die diese Schnittstelle gemäß ihrer Anforderung implementiert. Da die Methoden in der Schnittstelle keine Funktion ausführen, kann kein Objekt der Schnittstelle erstellt werden. Daher kann kein Objekt für die Schnittstelle erstellt werden.

Die Schnittstelle kann auch die andere Schnittstelle erben, aber die Klasse, die eine solche Schnittstelle erbt, muss auch alle Methoden der geerbten Schnittstelle implementieren. Da die Felder zum Zeitpunkt ihrer Deklaration in der Schnittstelle initialisiert werden, ist kein Konstruktor in der Schnittstelle erforderlich. Daher enthält die Schnittstelle keinen Konstruktor. Schauen wir uns das Beispiel zum Erstellen und Verwenden einer Schnittstelle an.

Interface-Bereich {float pi = 3.14; float find_area (float a, float b) {} Klasse Circle implementiert Area {float find_area (float a, float b) {return (pi * a * a); } Klassenformen {public static void main (Zeichenfolgenargumente) {Area A = new Area (); Kreis C = neuer Kreis (); A = C; float F = Fläche. find_area (10,10); system.out.ln ("Fläche des Kreises ist:" + F); }

Im obigen Code haben wir einen Schnittstellenbereich erstellt, und die Klasse Circle hat den Schnittstellenbereich implementiert. Das Feld "pi" wurde zum Zeitpunkt der Deklaration in der Schnittstelle initialisiert. Die Klasse Circle hat die abstrakte Methode des Klassenbereichs entsprechend ihrer Anforderung definiert.

  1. Ein Paket ist eine Gruppe von Klassen und Schnittstellen, während eine Schnittstelle eine Gruppe von abstrakten Methoden ist.
  2. Das Paket wird mit einem Schlüsselwort erstellt Paket Während eine Schnittstelle mit einem Schlüsselwort erstellt wird Schnittstelle.
  3. Wenn eine Klasse oder eine Schnittstelle innerhalb eines Pakets verwendet werden soll, wird das Paket importiert, während eine Schnittstelle implementiert werden muss.

Fazit:

Sowohl Pakete als auch Schnittstelle sind die Container. Package reduziert die Größe des Codes, da wir nur die zu verwendende Klasse importieren, anstatt sie erneut zu definieren.Während die Schnittstelle die Verwirrungen verringert, die bei Mehrfachvererbungen auftreten, muss die übernehmende Klasse bei Mehrfachvererbungen nicht entscheiden, welche Methode sie übernehmen soll, sondern definiert ihre eigene.