© APSIS GmbH extern.gif (1249 Byte), Polling, 2000


StapelGen

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 extern.gif (1249 Byte), Polling, 2000