Warteschlange Implementierung und Testklassen

Wir haben uns mit der Implementierung der Klasse Warteschlange des Projekts „Platz da!“ beschäftigt. Es wurde die Klasse Warteschlange sowohl mit Typ-Parameter als auch ohne besprochen.

gibErstePerson()- Methode

Methode für Warteschlange ohne Typ-Parameter
Methode für Warteschlange ohne Typ-Parameter

Diese Methode gibt, wenn bereit ein Objekt in der Schlage ist, das erste Objekt dieser Schlange zurück. Wenn erste = null ist dann gibt sie null zurück.

hinzufuegen()-Methode

Methode für Warteschlange ohne Typ-Parameter
Methode für Warteschlange mit Typ-Parameter

Die Funktionalität der Methode hinzufuegen() ist mit und ohne Typ-Parameter gleich.

In der unteren Grafik ist dargestellt wie die while-Schleife im else-Zweig (roter Kasten) funktioniert. Die Schlange schlange (blau) hat eine Referenz erste auf das Objekt, welches das erste Objekt in der Schlange ist (Entweder ist es ein Schlangenelement oder eine Person). Um jetzt herauszufinden an welcher Stelle der Schlange das neue Objekt p eingefügt werden muss, wird eine zweite Referenz benötigt. Diese Referenz letzte prüft ob letzte.next = null ist.

Auf die Grafik bezogen:

  1. Der Arm erste (Referenz) und der Arm letzte (Referenz) zeigen auf das erste Element der Schlange.
  2. SOLANGE der Arm letzter auf ein Objekt Element zeigt, dessen Arm next auf ein weiteres Element zeigt (vgl. Schritt 2 in der Grafik), bewegt sich der Arm letzte immer um ein Element weiter.
  3. Der Arm zeigt auf ein Element , dass auf nichts zeigt (also null).
  4. Dann wird das neue Objekt p (gelb) eine Stelle hinter das Objekt gesetzt, auf das der Arm letzte zeigt (also letzte.next).

entfernen() – Methode

Quellcode für die Klasse ohne Typ-Parameter
Quellcode für die Klasse mit Typ-Parameter

In der unteren Grafik ist dargestellt, was beim Entfernen eines Objekts passiert. Die Schlange schlange (blau) hat eine Referenz erste auf das Objekt, welches das erste Objekt in der Schlange ist (Entweder ist es ein Schlangenelement oder eine Person). Es wird eine zweite Referenz alteErste erstellt, um die Referenz erste zu verschieben.

Im Bezug auf die Grafik:

  1. Der Arm erste und der Arm ersteAlte zeigen auf das erste Objekt der Schlange.
  2. Zum Entfernen muss das zweite Objekt der Schlange zum Ersten werden. Somit zeigt der Arm erste auf das zweite Element der Schlange (erste.next). Der Arm alteErste zeigt nach wie vor auf das selbe Objekt.
  3. Das Element auf welches der Arm alteErste zeigt löst die Referenz zum nächsten Element. Somit verschwindet der Arm next, der auf das zweite Element zeigt ( = null gesetzt werden).

Testklassen Warteschlange

Testmethode für Warteschlange ohne Typ-Parameter
Testmethode für Warteschlange mit Typ-Parameter

In dieser Methode wird getestet, ob beim Hinzufügen eines Objekts (SchlangenElement / Person) in eine Schlange ( Warteschlange/ Schlange) beim Ausgeben ein Objekt zurückgegeben wird. Also, ob das Hinzufügen erfolgreich war.

Testmethode für Warteschlange ohne Typ-Parameter
Testmethode für Warteschlange mit Typ-Parameter

In dieser Methode wird getestet, ob eine Person erfolgreich aus der Schlange entfernt wurde. Es wird eine Schlange (Warteschlange/ Schlange) erzeugt. Danach werden zwei Objekte erzeugt (SchlangenElement/ Person) und in die Schlange hinzugefügt. Nach dem Ausführen der entfernen()-Methode sollte die zurückgegebene Person der zweite Person in der Schlange entsprechen, da die Erste entfernt wurde.

Testmethode für Warteschlange ohne Typ-Parameter
Testmethode für Warteschlange mit Typ-Parameter

In dieser Methode wird getestet, ob bei der Methode gibErstePerson() die korrekte Person ausgegeben wird. Es wird eine Schlange (Warteschlange/ Schlange) erzeugt. Danach werden zwei Objekte erzeugt (SchlangenElement/ Person) und in die Schlange hinzugefügt. Dann wird die Methode ausgeführt und muss mit dem zuerst hinzugefügten Objekt übereinstimmen.

Schreibe einen Kommentar