Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊(duì)列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java 匿名類

在本教程中,您將借助示例學(xué)習(xí)Java中的匿名類。

在Java中,一個(gè)類可以包含另一個(gè)稱為嵌套類的類??梢栽诓惶峁┤魏蚊Q的情況下創(chuàng)建嵌套類。

沒有任何名稱的嵌套類稱為匿名類。

必須在另一個(gè)類中定義一個(gè)匿名類。因此,它也被稱為匿名內(nèi)部類。其語法為:

class outerClass {

    //定義匿名類
    object1 = new Type(parameterList) {
         //匿名類的主體
    };
}

匿名類通常繼承子類或?qū)崿F(xiàn)接口。

在這里,類型(Type)可以是

  1. 匿名類繼承的超類

  2. 匿名類實(shí)現(xiàn)的接口

上面的代碼在運(yùn)行時(shí)創(chuàng)建了一個(gè)匿名類的對(duì)象object1。

注意:匿名類在表達(dá)式內(nèi)定義。因此,在匿名類的末尾使用分號(hào)來表示表達(dá)式的末尾。

示例1:匿名內(nèi)部類繼承類

class Polygon {
   public void display() {
      System.out.println("在Polygon類內(nèi)");
   }
}

class AnonymousDemo {
   public void createClass() {

      //創(chuàng)建匿名類,繼承類Polygon
      Polygon p1 = new Polygon() {
         public void display() {
            System.out.println("匿名類的內(nèi)部。");
         }
      };
      p1.display();
   }
}

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

輸出結(jié)果

匿名類的內(nèi)部。

在上面的示例中,我們創(chuàng)建了一個(gè)類Polygon。它只有一個(gè)方法display()。

然后,我們創(chuàng)建了一個(gè)匿名類,該類繼承類Polygon并重寫了display()方法。

當(dāng)我們運(yùn)行該程序時(shí),將創(chuàng)建一個(gè)匿名類的對(duì)象p1。然后該對(duì)象調(diào)用匿名類的display()方法。

示例2:實(shí)現(xiàn)接口的匿名類

interface Polygon {
   public void display();
}

class AnonymousDemo {
   public void createClass() {

      //匿名類實(shí)現(xiàn)接口
      Polygon p1 = new Polygon() {
         public void display() {
            System.out.println("匿名類的內(nèi)部。");
         }
      };
      p1.display();
   }
}

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

輸出結(jié)果

匿名類的內(nèi)部。

在上面的示例中,我們創(chuàng)建了一個(gè)實(shí)現(xiàn)該P(yáng)olygon接口的匿名類。

匿名類的優(yōu)點(diǎn)

在匿名類中,只要需要就創(chuàng)建對(duì)象。即,創(chuàng)建對(duì)象以執(zhí)行某些特定任務(wù)。例如,

Object = new Example() {
   public void display() {
      System.out.println("匿名類重寫display()方法。");
   }
};

在這里,當(dāng)我們需要重寫display()方法時(shí),將動(dòng)態(tài)創(chuàng)建匿名類的對(duì)象。

匿名類也有助于我們使代碼簡(jiǎn)潔。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清