package dir1.dir2...dirn

Werbung
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 importAnweisung.
- 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)
Einige Package des JDK
java.applet
java.awt
java.awt.event
java.awt.image
java.io
java.lang
Enthält die Klasse Applet und drei Schnittstellen. Diese
dienen als Schnittstellen zwischen einem Applet und dem
Browser oder Appletviewer.
Enthält die GUI-Klassen sowie Klassen zum Laden von
Grafiken, Drucken und Ausgeben von grafischen
Elementen.
Behandlung von Ereignissen von AWT-Komponenten
nach dem neuen Event-Modell.
Klassen-und Schnittstellensammlung zur Bildbearbeitung
Lesen und Schreiben von Daten.
Die klassen dieses Packages werden implizit in jede JavaApplikation und in jedes Applet eingebunden. Enthalten
sind die Klasse Object, die Wurzel aller Klassen ist, und
Klassen zum Erstellen und Verwalten von Threads sowie
die erweiterten Datentypen.
java.math
Zwei Klassen mit erweiterten Möglichkeiten zur
Berechnung von Zahlen. Normalerweise berechnet man
Zahlen mit Methoden aus java.lang.Math.
java.text
Bestimmung und Formatieren von Zahlen, Zahlen,Währungs- und Datumsformaten sowie Ermittlung von
Textbegrenzungen.
Enthält Tools zum Umwandeln von Zahlen-,Währungs- und
Datumsformaten, zum Erstellen von Datenstrukturen und
die Basisklassen zum Event-Handling.
java.util
Zugriffsrechte zu Attributen
Attribut
Wer hat Zugriff?
public
Alle Objekte
private
Nur das Objekt der Klasse in der
das Attribute definiert ist
protected Nur Objekte abgeleiteter
Klassen und von Klassen des
selben Packages
Alle Objekte von Klassen die
zum selben Package gehören
Package
Anderes Package
Klasse
none
Abgeleitete Klasse
protected
private
public
Abgeleitete
Nicht-
Klasse
abgeleitete
Klasse
Nicht-abgeleiteteKlasse
Packages importieren
 set CLASSPATH=PATH1;PATH2;...PATHN;
 Im Programm:
import dir1.dir2...dirn.classname;
 Es wird das erste Class-File
PATH1\dir1\dir2\...\dirn\classname.class
PATH2\dir1\dir2\...\dirn\classname.class
...
PATHN\dir1\dir2\...\dirn\classname.class
importiert das gefunden wird
Packages compilieren
 Im Programm enthalten
package dir1.dir2...dirn;
...
class classname {
 Übersetzungskommando:
javac –d PATHI classname.java
 Es wird das Classfile
PATHI\dir1\dir2\...\dirn\classname.class
erzeugt
Herunterladen