15 Packages Zu Java gehören sehr viele verschiedene Klassen. Um nicht die Übersicht zu verlieren, werden Klassen mit ähnlichem Zweck gemeinsam zu größeren Paketen, sogenannten “packages” zusammengeschnürt. Um einen weiteren Zweck von Paketen klarzumachen, stellen Sie sich vor, Sie hätten eine Klasse namens Y2K erstellt, welche alle Millenium–Bugs vertreibt und wollten diese Klasse verkaufen. Stellen Sie sich nun vor, ein potentieller Kunde habe bereits eine eigene Klasse namens Y2K erstellt, benutze diese in seinem Programm und wolle nicht auf sie verzichten. Was tun ? Sie könnten natürlich ihre Klasse umbenennen. Aber selbst wenn sie sie umbenennen, könnte es einen Namenskonflikt mit einem anderen Kunden geben. Eine Lösung, derartige Namenskonflikte gar nicht erst zum Problem werden zu lassen, sind packages. Ein package oder Paket enthält beliebig viele Klassen. Die in einem package enthaltenen Klassen kann man ansprechen, indem man hinter den Namen des packages einen Punkt und dann den Namen der Klasse setzt. Wenn zum Beispiel ein Paket den Namen de.tubs.cs.sc.akeese hat und in dem Paket eine Klasse namens Y2K enthalten ist, so könnte man die Klasse als de.tubs.cs.sc.akeese.Y2K ansprechen. Es ist üblich, Paket–Namen aus der Internet–Adressierung einer Firma zu generieren. Wenn die Firma SUN (www.sun.com) eine Erweiterung zu Java entwickelt, welche nicht im Java–Kern enthalten ist, so würde diese Erweiterung in einem Paket namens com.sun.paketname enthalten sein. Da Internet–Adressen eindeutig sind, wird so sichergestellt, daß Pakete unterschiedlicher Firmen unterschiedliche Namen enthalten. Somit haben auch in der Regel Klassen verschiedener Firmen verschiedene Namen und sind deshalb gemeinsam einsetzbar. Alle zu Java gehörigen Klassen sind in Paketen enthalten, die mit dem Text “java” beginnen. So gibt es ein Paket java.awt, in welchem alle Bestandteile des “Abstract Windowing Toolkits” enthalten sind, es gibt ein Paket java.math, in welchem spezielle mathematische Klassen enthalten sind, und viele mehr. Das wichtigste Paket ist das Paket java.lang, in welchem die wichtigsten Java– Klassen wie z.B. String oder Object enthalten sind. Wir wollen hier nicht weiter darauf eingehen, wie man packages erstellt, möchten Ihnen jedoch erläutern, wie man packages benutzt. Um eine in einem Paket enthaltene Klasse anzusprechen, müssen Sie vor den Namen der Klasse jedesmal den Namen des Paketes setzen. Wenn der Paketname lang ist, wird das eine ganze Menge Schreibarbeit. Stellen Sie sich vor, statt String müssten Sie jedesmal java.lang.String schreiben. Man kann daher die in einem Paket enthaltenen Namen in ein Programm importieren. Dazu setzt man an den Anfang der Datei den Text import paketname.*; Hierdurch werden alle in dem jeweiligen Paket enthaltenen Klassen importiert und sind in Zukunft ansprechbar, ohne daß Sie den Paketnamen vor den Klassennamen setzen müssen. 142 Wenn Sie nur einzelne Klassen eines Paketes importieren wollen, können Sie statt des Sterns auch für jede zu importierende Klasse einen einzelnen import– Befehl angeben, etwa so: import paketname.klasse1; import paketname.klasse2; Beispielsweise enthält das Paket java.util die Klasse Dictionary. Wenn Sie diese Klasse benutzen wollen, haben Sie zwei Möglichkeiten: Sie können die Klasse direkt verwenden: class MeineKlasse { java.util.Dictionary einDict; public static void main( String[] args ) { java.util.Dictionary aDict = new java.util.Dictionary(); } } Alternativ können Sie die Klasse auch importieren und können dann eine kürzere Schreibweise wählen: import java.util.*; // oder import java.util.Dictionary class MeineKlasse { Dictionary einDict; public static void main( String[] args ) { Dictionary aDict = new Dictionary(); } } Es ist übrigens nicht nötig, Inhalte des java.lang–Paketes zu importieren. Da die dort enthaltenen Klassen so häufig benutzt werden, wird es automatisch in jedes Programm exportiert. Der Java–Compiler fügt automatisch in jedes kompilierte Programm den Befehl import java.lang.*; ein. Eine Übersicht über die zu Java gehörigen Pakete finden Sie in der Dokumentation zum Java API unter http://www.tu-bs.de:82/wir/EIP/jdk1.1.8/docs/api/packages.html Bitte klicken Sie sich dorthin, indem Sie von unseren WWW–Seiten unter den Litaturlinks zu Java auf den relativ weit unten stehenden Link “Java–Api (lokal)” klicken. Bitte schauen Sie sich auf dieser WWW–Seite um, klicken Sie dort auf das Package java.lang und schauen Sie sich die Dokumentation der Object–Klasse in java.lang an. 143 15.1 Zusammenfassung Nach Lesen dieses Kapitels sollten Sie • erklären können, welche Vorteile ein Package bietet. • den import–Befehl kennen. • wissen, was am java.lang–Paket besonders ist. • eine Übersicht der zu Java gehörenden Packages aufrufen können. 144