© 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