Abitur

14.5 Die Klasse Stack im Zentralabitur NRW

Das Bildungsministerium NRW hat 2006/07 einen „Werkzeugkasten„ im Internet veröffentlicht, der die in den verschiedenen Schulen üblichen unterschiedlichen Definitionen wichtiger Klassen standardisieren soll. Die Klasse Stack sieht nach den Vorgaben für das Zentralabitur in NRW folgendermaßen aus:

Da ist eigentlich nicht viel zu kommentieren; die Definition der Klasse Stack ist sofort klar verständlich und entspricht den üblichen Standards.

Ein paar kleine Unterschiede zur Definition des ADT Stack fallen natürlich schon auf, z.B. heißt der Konstruktor nicht „Init„, sondern „Stack„. Bei Java-Klassen müssen die Konstruktoren halt so heißen wie die Klasse selbst - aber das haben wir ja selbst auch schon so gemacht.

Vielleicht ist Ihnen auch schon aufgefallen, dass in dem NRW-Stack keine konkreten Datentypen wie int oder Datenstrukturen wie String vom Stack verwaltet werden, sondern allgemeine Objekte des Typs Object. Da Objekte stets Pointer (Zeiger) auf die tatsächlichen Objekte sind, ist sogar die Schreibweise pObject verständlich.

In der Buchversion dieses Lehrgangs erläutere ich noch ein konkretes Beispiel ausführlich auf mehreren Seiten. Ich zeige Ihnen dort, wie man Objekte einer Klasse Punkt in einem Stack speichern kann.

14.6 Aufgaben mit der Klasse Stack

Im Zentralabitur kann es durchaus passieren, dass Sie eine Stack-Klasse implementieren müssen. Wie hieß es doch in der Abituraufgabe IF LK HT 02 Java aus der Abiturprüfung 2007:

In der Anlage sind die Methoden der Datenstruktur „Queue" dokumentiert.

Beschreiben Sie kurz eine Implementationsmöglichkeit der Klasse „Queue" und geben Sie Implementationen der Methoden „enqueue" und „dequeue" an.

Hier ging es zwar nicht um den ADT Stack, sondern um den ADT Queue, aber die beiden ADTs sind sehr eng miteinander verwandt.

Eine andere einfache Aufgabe könnte darin bestehen, eine Klasse zu schreiben, die zwei Stack-Objekte s1, s2 besitzt, und dann eine Methode kopiere() zu implementieren, die den Stack s1 in den Stack s2 hinein kopiert, so dass am Ende beide Stacks identisch sind. Beim Kopieren dürfen nur die Operationen des ADT Stack verwendet werden. Ein Direktzugriff auf den Array ist nicht erlaubt (Datenkapselung).

In der Buchversion wird diese Aufgabe gelöst und eingehend kommentiert. Außerdem wird eine zweite Aufgabe ausführlich besprochen (Seite 33 bis 39).

zurück zu Folge 14 - Abstrakte Datentypen

Diese HTML-Seite wurde erstellt von Ulrich Helmich am 19. August 2006.





IMPRESSUM