1.9 KiB
Lokale Klasse schreiben
Lernziel
Eine lokale Klasse verwenden, um einen Event-Handler zu implementieren. Den Zugriff der lokalen Klasse auf Attribute der umgebenden Klasse und finale Parameter der Methode nutzen.
Aufgabe
Gehen Sie in das Paket pr2.lambda.local.
Für diese Aufgabe müssen Sie das Gameframework einbinden. Sie finden es im lib
-Ordner: game_framework.jar
In dieser Aufgabe sollen Sie den Event-Handler für das Zerstören des Aliens als lokale Klasse im Konstruktor von GameBoard
realisieren. D.h. nicht mehr das Alien selbst reagiert auf das Klicken, sondern das GameBoard
bekommt alle Klicks und überprüft, ob sich die Maus über dem Alien befindet.
Fügen Sie dem Konstruktor von GameBoard
eine lokale Klasse AlienExploder
hinzu, die von MouseAdapter
erbt. Überschreiben Sie in dieser Klasse die Methode mousePressed
aus MouseAdapter
.
In der mousePressed
-Methode holen Sie die X- und Y-Koordinate aus dem MouseEvent
und überprüfen Sie mit der Methode intersects
von Alien
, ob sich die Maus auch wirklich über dem Alien befindet. Wenn ja, rufen Sie die explode
-Methode des Aliens auf.
Erzeugen Sie nach der Deklaration der Klasse AlienExploder
eine Instanz von dieser und übergeben Sie das Objekt der addMouseListener
-Methode von GameBoard
.
Lassen Sie das Programm laufen und überprüfen Sie, ob es das erwartete Verhalten zeigt.
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:
- Öffnen Sie eine Kommandozeile (Terminal).
- Gehen Sie in Ihr Working Directory.
- Wechseln Sie mit
cd
in das Verzeichnissources
. - Bauen Sie das Projekt mit dem Kommando
mvn
.