# Interface Stack entwerfen [Musterlösung](solution/) ## Lernziel Ein Interface entwerfen und dieses dann implementieren. ## Aufgabe Gehen Sie in das Paket [pr2.interfaces.stack](../sources/src/main/java/pr2/interfaces/stack/). Entwerfen Sie bitte ein Interface `Stack`, das die grundlegenden Operationen eines Stacks definiert: * `push` -- schiebt ein neues Objekt auf den Stack * `pop` -- holt das obere Element vom Stack und gibt es zurück * `peek` -- gibt das obere Element zurück, lässt es aber auf dem Stack liegen * `size` -- gibt die Anzahl der Elemente auf dem Stack zurück Der Stack soll beliebige Objekte verwalten können. Implementieren Sie das Interface mit einer Klasse `StackImpl` und schreiben Sie JUnit-Tests, um Ihre Implementierung zu testen. ## Abgabe (optional) __Sie müssen keine Lösung für diese Aufgabe einreichen.__ Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor: 1. Öffnen Sie eine Kommandozeile (Terminal). 2. Gehen Sie in Ihr Working Directory. 3. Wechseln Sie mit `cd` in das Verzeichnis `sources`. 4. Bauen Sie das Projekt mit dem Kommando `mvn`.