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

تعليمات Java الأساسية

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

معالجة الاستثنائات Java

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

الصفوف الغير معروفة Java

在本教程中,您将借助示例学习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("داخل الفئة المجهولة.");
         };
      };
      p1.display();
   };
};
class Main {
   public static void main(String[] args) {
       AnonymousDemo an = new AnonymousDemo();
       an.createClass();
   };
};

نتائج الإخراج

داخل الفئة المجهولة

在上面的示例中,我们创建了一个类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("داخل الفئة المجهولة.");
         };
      };
      p1.display();
   };
};
class Main {
   public static void main(String[] args) {
      AnonymousDemo an = new AnonymousDemo();
      an.createClass();
   };
};

نتائج الإخراج

داخل الفئة المجهولة

في المثال السابق، أنشأنا فئة مجهولة تحقق من واجهة Polygon.

مزايا الفئة المجهولة

في匿名 الفئة، يمكنك إنشاء موضوع عند الحاجة. أي، أنشئ موضوعًا لتنفيذ مهام معينة. على سبيل المثال،

Object = new Example() {
   public void display() {
      System.out.println("Anonymous class overrides the display() method.");
   };
};

في هذا المكان، عندما نحتاج إلى إعادة كتابة طريقة display()، يتم إنشاء موضوع匿名 الفئة تلقائيًا.

Anonymous classes تساعدنا في جعل الكود مختصرًا.