150 likes | 400 Views
Packages. Vortrag : Cornelia Hardt 23. November 1999. Einleitung. Packages sind nützlich, um die Komplexität großer Programme in den Griff zu bekommen. Ein Package enthält eine Anzahl von Klassen, die irgendwie miteinander zusammenhängen.
E N D
Packages Vortrag : Cornelia Hardt 23. November 1999
Einleitung • Packages sind nützlich, um die Komplexität großer Programme in den Griff zu bekommen. • Ein Package enthält eine Anzahl von Klassen, die irgendwie miteinander zusammenhängen. • Beispielsweise enthält das Bibliothekspackages java.awt Methoden zum Bereiteitstellen von Schaltflächen und zum Zeichnen grafischer Bilder. • So wie eine Klasse verwandte Daten und Methoden zusammenfaßt, faßt ein Package eine Gruppe von verwandter Klassen zusammen.
Vereinbarungen • Der Name eines Packages wird nach den selben Regeln wie Variablen-, Klassen- und Methodennamen vergeben. • Vereinbarungsgemäß beginnt der Name eines Packages mit einem Kleinbuchstaben. • Klassen, die ein Package bilden, stehen in einem eigenen Verzeichnis. • Der Verzeichnisname sollte der selbe wie der Packagename sein. • Der Packagename wird am Anfang aller Klassen in einer package-Anweisung festgelegt.
Beispiel: Stream • Sämtliche Klassen - writematrix, writeobject, readmatrix, readobject, readurl,testlinereader, copy, copyb, type, typeb - werden in ein package zusammengefaßt. • Alle Klassen werden in dem Verzeichnis dvg2/ioprogramme gespeichert. • Dann wird am Kopf jeder Klasse die Zeile : - package ioprogramme; ´eingefügt.
Beispiel package ioprogramme; import java.io.*; public class ReadObject { public static void main (String [] args) throws IOException, ClassNotFoundException { File inFile = new File("Object.dat"); ...
Programm zur Überprüfung ob es auch funktioniert: import ioprogramme.*; import java.io.*; public class test { public static void main (String [] args) throws IOException { //ioprogramme.type.main(args); type.main(args); } }
Dieses Programm greift auf die main-Methode des Programmes type zu. • Dazu benötigt es im Kopf die Anweisung import. packagename ; • Es wird folgender Maßen aufgerufen werden: ...\dvg2>java test test.java • Das Programm type hat die Funktion des lesens einer Datei. Beim obigen Aufruf wird der Programmtext des Programms test ausgegeben.
Package und import • Wenn eine andere Klasse eine Klasse aus einem Package verwenden möchte, benötigt sie in ihrem Kopf die import-Anweisung. - import pName.Klassenname; • Wenn eine Klasse alle Klassen innerhalb des Packages verwenden muß, kann eine Kurzdeklaration gemacht werden. -import pName.* ;
Zusammenfassung • Verwandte Klassen werden in einem Package zusammengefaßt. • Ein Package-Name fängt mit einem Kleinbuchstaben an. • Eine package-Anweisung im Kopf einer Klasse enthält den Namen des Packages, dem die Klasse angehört. • Alle Klassen eines Packages stehen im selben Verzeichnis, aber in unterschiedlichen Dateien. • Der Verzeichnisname sollte dem Package-Namen entsprechen. (--> Dateiname entspricht Klassenname)
Package Anderes Package Nicht-abgeleiteteKlasse Abgeleitete Klasse Abgeleitete Klasse Nicht- abgeleitete Klasse Klasse none protected private public
Packages importieren • set CLASSPATH=PATH1;PATH2;...PATHN; • Im Programm:import dir1.dir2...dirn.classname; • Es wird das erste Class-FilePATH1\dir1\dir2\...\dirn\classname.classPATH2\dir1\dir2\...\dirn\classname.class...PATHN\dir1\dir2\...\dirn\classname.classimportiert das gefunden wird
Packages compilieren • Im Programm enthaltenpackage dir1.dir2...dirn;...class classname { • Übersetzungskommando:javac –d PATHI classname.java • Es wird das ClassfilePATHI\dir1\dir2\...\dirn\classname.classerzeugt