Wie in Java eine anonyme Klasse zu erstellen

Anonyme innere Klassen (In der Regel nur genannt anonyme Klassen) wahrscheinlich das seltsamste Merkmal der Java-Programmiersprache sind. Das erste Mal, wenn Sie eine anonyme Klasse sehen, werden Sie fast denken sicherlich, dass jemand einen Fehler gemacht, und dass der Code nicht möglicherweise kompilieren. Aber kompilieren es funktioniert, und es funktioniert auch. Wenn Sie den Dreh in der Arbeit mit anonymen Klassen bekommen, werden Sie sich fragen, wie Sie ohne sie durch einsehen.

Eine anonyme Klasse ist eine Klasse, die an Ort und Stelle, direkt an dem Punkt definiert ist, wo Sie es instanziiert werden soll. Weil Sie den Körper der Klasse richtigen Code, wo Sie es brauchen, haben Sie es nicht einen Namen zu geben. (Deshalb ist es ein genannt anonym Klasse.)

Die Grundform für die Deklaration und eine anonyme Klasse instanziieren, ist dies:

neue ClassOrInterface () {Klasse-body}

Wie Sie sehen können, geben Sie die neu gefolgt Stichwort mit dem Namen einer Klasse oder Schnittstelle, die den Typ des Objekts aus der anonymen Klasse erstellt angibt.

Diese Klasse oder Schnittstelle Name wird durch Klammern, die eine Parameterliste enthalten kann, die an den Konstruktor der anonymen Klasse übergeben wird. Dann kodieren Sie eine Klasse Körper in Klammern gesetzt. Diese Klasse Körper kann alles, was auch eine reguläre Klasse Körper können sein: Felder, Methoden und sogar andere Klassen oder Schnittstellen.

Hier ist ein Beispiel für eine einfache anonyme Klasse:

public class AnonClass {public static void main (String [] args) {Kugel b = new Ball () {public void Hit () {System.out.println ( "Sie schlagen es!") -}} - b.hit ( ) -} Schnittstelle Kugel {void Hit () -}}

In diesem Beispiel Schnittstelle mit dem Namen Ball genannt wird erstellt, das eine einzige Methode hat Hit. Dann zurück in die Main Verfahren wird eine Variable vom Typ Ball wird erklärt und eine anonyme Klasse verwendet, um ein Objekt zu erstellen. Der Körper der anonymen Klasse besteht aus einer Implementierung der Hit Methode, die einfach die Nachricht anzeigt Sie traf es! auf der Konsole.

Nachdem die anonyme Klasse ist die instanziiert und zugewiesen b Variable, die nächste Anweisung ruft das Hit method.When Sie dieses Programm ausführen, die einzelne Zeile Sie traf es! wird auf der Konsole angezeigt.

Hier sind einige Dinge zu bedenken, wenn Sie mit anonymen Klassen arbeiten:

  • Sie können nicht einen Konstruktor für einen anonymen Klasse zu erstellen, da die anonyme Klasse keinen Namen haben. Was würden Sie den Konstruktor aufrufen, überhaupt?

  • Sie können keine Parameter übergeben, wenn die anonyme Klasse auf einer Schnittstelle basiert. Das macht Sinn- Schnittstellen haben keine Konstruktoren, so Java würde nichts haben, die Parameter zu übergeben.

  • Eine Zuweisung kann eine anonyme Klasse verwenden, wie in diesem Beispiel gezeigt. In diesem Fall wird die anonyme Klasse Körper durch ein Semikolon gefolgt, die das Ende der Zuweisungsanweisung markiert. Beachten Sie, dass diese Semikolon Teil der Zuweisungsanweisung ist, nicht die anonyme Klasse.

  • Eine anonyme Klasse eine spezielle Art von inneren Klassen- wie jede innere Klasse ist, hat automatisch Zugriff auf die Felder und Methoden ihrer äußeren Klasse.

  • Eine anonyme Klasse kann nicht statisch sein.

Menü