© APSIS GmbH
, Polling,
2000
Polymorphe Implementierung der Schnittstelle Stapel aus der Bibliothek für das Lehrbuch Programmieren mit Java
Dokumentation
Programmtext ohne Dokumentation
/* * @(#)kapitel9/StapelGen.java * Bibliothek für das Lehrbuch in Java * @author Prof. Solymosi, (c): APSIS GmbH * @version 3.0 * @date 28. August 2000 */ package lehrbuch.kapitel9;
/** Generische Implementierung des Stapels als Reihung.
Generische Klasse, d.h. Konstruktion nur mit Registierungsobjekt möglich. Wenn Methoden mit Parametern anderer Klassen aufgerufen werden, wird die ungeprüfte Ausnahme GenFehler ausgelöst.
*/
public class StapelGen extends StapelPol implements Stapel {
/** Konstruktor mit Registrierungsobjekt.
@param element const das Registrierungsobjekt
@param groesse const
*/
public StapelGen(final Object reg, final int groesse) { // Registrierungsobjekt
super(groesse);
klasse = reg.getClass();
}
/** Kopierkonstruktor.
@param quelle const der zu kopierende Stapel
@exception VollAusnahme der kopierte Stapel kann wegen Speichermangel nicht erstellt werden
*/
public StapelGen(final StapelGen quelle) throws VollAusnahme {
super(quelle);
klasse = quelle.klasse;
}
/** Trägt ein Element in den Stapel ein.
@param element const das einzutragende Objekt
@exception VollAusnahme das Objekt kann nicht mehr eingetragen werden
*/
public void eintragen(final Object element) throws VollAusnahme {
// if (element.getClass() != klasse)
if (! klasse.isInstance(element))
throw new GenFehler();
super.eintragen(element);
}
// private Komponenten: private Class klasse;
/** Testtreiber */
public static void main(String[] args) {
try {
Stapel s = new StapelGen(new Integer(0), 5);
System.out.println("StapelGen Test");
s.eintragen(new Integer(1));
System.out.print("Ausnahme GenFehler? ");
try {
s.eintragen(new Float(1.0));
System.out.println("eintragen falsch");
} catch (GenFehler fehler) {
System.out.println("GenFehler");
}
} catch (Exception ausnahme) {
System.out.println("Ausnahme: " + ausnahme);
}
}
}
© APSIS GmbH
, Polling,
2000