English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java Grund教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java Ausnahmebehandlung

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java Anonyme Klasse

在本教程中,您将借助示例学习Java中的匿名类。

在Java中,一个类可以包含另一个称为嵌套类的类。可以在不提供任何名称的情况下创建嵌套类。

没有任何名称的嵌套类称为匿名类。

必须在另一个类中定义一个匿名类。因此,它也被称为匿名内部类。其语法为:

class outerClass {
    //定义匿名类
    object1 = new Type(parameterList) {
         //匿名类的主体
    };
}

匿名类通常继承子类或实现接口。

在这里,类型(Type)可以是

  1. 匿名类继承的超类

  2. 匿名类实现的接口

上面的代码在运行时创建了一个匿名类的对象object1。

注意:匿名类在表达式内定义。因此,在匿名类的末尾使用分号来表示表达式的末尾。

示例1:匿名内部类继承类

class Polygon {
   public void display() {
      System.out.println("在Polygon类内");
   }
}
class AnonymousDemo {
   public void createClass() {
      //创建匿名类,继承类Polygon
      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();
   }
}

Ausgaberesultat

Innerhalb der anonymen Klasse

在上面的示例中,我们创建了一个类Polygon。它只有一个方法display()。

然后,我们创建了一个匿名类,该类继承类Polygon并重写了display()方法。

当我们运行该程序时,将创建一个匿名类的对象p1。然后该对象调用匿名类的display()方法。

示例2:实现接口的匿名类

interface Polygon {
   public void display();
}
class AnonymousDemo {
   public void createClass() {
      //匿名类实现接口
      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();
   }
}

Ausgaberesultat

Innerhalb der anonymen Klasse

Im obigen Beispiel wurde eine anonyme Klasse erstellt, die das Polygon-Interface implementiert.

Vorteile der anonymen Klassen

In anonymen Klassen wird ein Objekt erstellt, wenn es benötigt wird. Das bedeutet, ein Objekt wird erstellt, um bestimmte Aufgaben auszuführen. Zum Beispiel,

Object = new Example() {
   public void display() {
      System.out.println("Anonyme Klasse überschreibt display() Methode.");
   }
};

Hier wird ein Objekt der anonymen Klasse dynamisch erstellt, wenn wir die display() Methode überschreiben müssen.

Anonyme Klassen helfen uns auch, den Code zu vereinfachen.