Da jede dieser Listener- Klassen häufig nur für die Verwendung und den Verbrauch einer bestimmten Komponente des Systems oder der Anwendung bestimmt ist, die wir erstellen, ist es nicht sinnvoll, vollständige und separate Klassen zu erstellen.
Deshalb haben wir die anonymen Klassen , mit denen wir die Definition der Listener verkürzen und damit deren Implementierung in unseren Programmen vereinfachen können.
Hörer anonyme Klassen
Wie wir eingangs erwähnt haben, haben Komponenten vom Typ Listener , die die Ereignisse der Elemente unserer Benutzeroberflächen verarbeiten, in der Regel einen ganz bestimmten Zweck, der nicht wiederverwendet werden kann. Deshalb können wir sie als verschachtelte Klassen und mit generieren Dies vereinfacht den zu generierenden Code ein wenig.
Nachfolgend einige Beispiele, wie wir eine anonyme Klasse ausgehend von einer verschachtelten Klasse implementieren können:
Wir sehen, dass wir im ersten Teil eine öffentliche Methode definieren und dann in dieser eine verschachtelte Klasse erstellen. Diese Klasse ist für die Implementierung einer Schnittstelle verantwortlich , um einen Listener für die Ereignisse zu implementieren, die im Programm generiert werden können.
Im unteren Teil haben wir das Gleiche wie am Anfang getan, nur dass wir anstelle einer verschachtelten Klasse die anonyme Klasse definieren , mit der wir die Schnittstelle implementieren und die Instanz in einem einzigen Schritt erstellen können, wodurch die Anzahl der Zeilen effektiv reduziert wird auszuführender Code.
Überlegungen zu anonymen Klassen
- Eine anonyme Klasse ist eigentlich ein spezieller Typ einer verschachtelten Klasse und wird als solche behandelt, kann jedoch nicht explizit erweitert oder implementiert werden.
- Eine anonyme Klasse muss immer die abstrakten Methoden der Superklasse oder des Interfaces implementieren.
- Die anonymen Klassen verwenden das Formular immer ohne Argumente des Konstruktors der übergeordneten Klasse. In dem Fall, dass eine Schnittstelle implementiert ist, ist der Konstruktor Object .
- Für jede kompilierte anonyme Klasse generiert Java eine .class-Datei, in der jede anhand der Reihenfolge identifiziert wird, in der sie verwendet wird, z. B. Externe Klasse $ 1 , Externe Klasse $ 2.class und so weiter.
Wir haben dann gesehen, wie wir ein neues Tool verwenden können, mit dem wir die Menge an Code reduzieren können, die wir schreiben und generieren müssen, um die Ergebnisse zu erhalten. Dadurch erhalten wir leichtere Programme, die von den Mitgliedern unseres Programmierteams oder von uns selbst leichter zu debuggen sind .