Java anonyme Klassen

Java-Objekte und Klassen

In Java kann eine Klasse eine andere Klasse enthalten und direkt instanziiert werden, ohne einen Klassennamen anzugeben.

Sie wird hauptsächlich verwendet, um bei Bedarf ein Objekt zu erstellen, das eine bestimmte Aufgabe ausführt, was den Code prägnanter macht.

Anonyme Klassen sind Klassen, die keine Namen haben können. Auf sie kann nicht verwiesen werden, und sie können nur zum Zeitpunkt der Erstellung mit einernew-Anweisung deklariert werden.

Syntaxformat anonymer Klassen:

class outerClass {

    // 定义一个匿名类
    object1 = new Type(parameterList) {
         // 匿名类代码
    };
}

Der obige Code erstellt ein anonymes Klassenobjekt object1. Die anonyme Klasse wird als Ausdruck definiert, daher endet sie mit einem Semikolon;zum Abschluss.

Anonyme Klassen erben normalerweise von einer Elternklasse oder implementieren eine Schnittstelle.

Anonyme Klasse, die von einer Elternklasse erbt

Im folgenden Beispiel wird eine Polygon-Klasse erstellt. Diese Klasse hat nur eine Methode, display(). Die Klasse AnonymousDemo erbt von der Klasse Polygon und überschreibt deren display()-Methode:

Beispiel

class Polygon {
   public void display() {
      System.out.println("Innerhalb der Polygon-Klasse");
   }
}

class AnonymousDemo {
   public void createClass() {

      // Die erstellte anonyme Klasse erbt von der Polygon-Klasse
      Polygon p1 = new Polygon() {
         public void display() {
            System.out.println("Innerhalb der anonymen Klasse.");
         }
      };
      p1.display();
   }
}

class Main {
   public static void main(String[] args) {
       AnonymousDemo an = new AnonymousDemo();
       an.createClass();
   }
}

Wenn der obige Code ausgeführt wird, wird ein Objekt p1 der anonymen Klasse erstellt. Dieses Objekt ruft die Methode display() der anonymen Klasse auf, und die Ausgabe ist:

Inside an anonymous class.

Anonyme Klasse, die eine Schnittstelle implementiert

Das folgende Beispiel erstellt eine anonyme Klasse, die die Polygon-Schnittstelle implementiert:

Beispiel

interface Polygon {
   public void display();
}

class AnonymousDemo {
   public void createClass() {

      // Die anonyme Klasse implementiert eine Schnittstelle
      Polygon p1 = new Polygon() {
         public void display() {
            System.out.println("Innerhalb der anonymen Klasse.");
         }
      };
      p1.display();
   }
}

class Main {
   public static void main(String[] args) {
      AnonymousDemo an = new AnonymousDemo();
      an.createClass();
   }
}

Die Ausgabe ist:

Inside an anonymous class.

Java-Objekte und Klassen

Weitere Erweiterungen