最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中匿名內部類詳解

 更新時間:2017年04月17日 14:51:40   投稿:wbb  
這篇文章主要對java中的匿名內部類的詳細總結,需要的朋友可以參考下

java匿名內部類:

1:匿名內部類,匿名內部類也就是沒有名字的內部類。

2:匿名內部類的作用

正因為沒有名字,所以匿名內部類只能使用一次,它通常用來簡化代碼編寫。

3:匿名內部類的實現(xiàn)

匿名內部類的兩種實現(xiàn)方式:第一種,繼承一個類,重寫其方法;第二種,實現(xiàn)一個接口(可以是多個),實現(xiàn)其方法。

4:匿名內部類的創(chuàng)建

匿名類是不能有名稱的類,所以沒辦法引用它們。必須在創(chuàng)建時,作為new語句的一部分來聲明它們。

package com.mianshi.test;
/**
 * 類名稱:AnonymousInnerClassTest 
 * 描述: 匿名內部類測試
 * 創(chuàng)建人:王秋林 
 * 創(chuàng)建時間:2017-2-12
 */
public class AnonymousInnerClassTest {
  public static void main(String args[]){   
    AnonymousInnerClassTest test = new AnonymousInnerClassTest();   
    test.show();   
  }   
  //在這個方法中構造了一個匿名內部類   
  private void show(){   
    Out anonyInter = new Out(){//獲取匿名內部類實例   
      void show(){//重寫父類的方法   
        System.out.println("this is Anonymous InnerClass showing.");
      }   
    };   
    anonyInter.show();//調用其方法   
  } 
}
//這是一個已經(jīng)存在的類,匿名內部類通過重寫其方法,將會獲得另外的實現(xiàn)   
class Out{   
  void show(){   
    System.out.println("this is Out showing.");   
  }   
}

5:匿名內部類的基本實現(xiàn)

(1)抽象方法實現(xiàn)

abstract class Person {
  public abstract void eat();
}
public class Demo {
  public static void main(String[] args) {
    Person p = new Person() {
      public void eat() {
        System.out.println("eat something");
      }
    };
    p.eat();
  }
}

運行結果:eat something

(2)接口實現(xiàn)

interface Person {
  public void eat();
}
public class Demo {
  public static void main(String[] args) {
    Person p = new Person() {
      public void eat() {
        System.out.println("eat something");
      }
    };
    p.eat();
  }
}

運行結果:eat something

由上面的例子可以看出,只要一個類是抽象的或是一個接口,那么其子類中的方法都可以使用匿名內部類來實現(xiàn)。最常用的情況就是在多線程的實現(xiàn)上,因為要實現(xiàn)多線程必須繼承Thread類或是繼承Runnable接口。

(3)Thread類的匿名內部類實現(xiàn)

public class Demo {
  public static void main(String[] args) {
    Thread t = new Thread() {
      public void run() {
        for (int i = 1; i <= 5; i++) {
          System.out.print(i + " ");
        }
      }
    };
    t.start();
  }
}

運行結果:1 2 3 4 5

(4)Runnable接口的匿名內部類實現(xiàn)

public class Demo {
  public static void main(String[] args) {
    Runnable r = new Runnable() {
      public void run() {
        for (int i = 1; i <= 5; i++) {
          System.out.print(i + " ");
        }
      }
    };
    Thread t = new Thread(r);
    t.start();
  }
}

運行結果:1 2 3 4 5

二、匿名內部類的注意事項

(1)匿名內部類不能有構造方法。

(2)匿名內部類不能定義任何靜態(tài)成員、方法和類。

(3)匿名內部類不能是public,protected,private,static。

(4)只能創(chuàng)建匿名內部類的一個實例。

(5)一個匿名內部類一定是在new的后面,用其隱含實現(xiàn)一個接口或實現(xiàn)一個類。

(6)因匿名內部類為局部內部類,所以局部內部類的所有限制都對其生效。

(7)匿名類和內部類中的中的this:有時候,我們會用到一些內部類和匿名類。當在匿名類中用this時,這個this則指的是匿名類或內部類本身。這時如果我們要使用外部類的方法和變量的話,則應該加上外部類的類名。

以上就是本篇文章內容,需要的朋友可以參考

相關文章

  • Spring Boot2中如何優(yōu)雅地個性化定制Jackson實現(xiàn)示例

    Spring Boot2中如何優(yōu)雅地個性化定制Jackson實現(xiàn)示例

    這篇文章主要為大家介紹了Spring Boot2中如何優(yōu)雅地個性化定制Jackson實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • Java實現(xiàn)數(shù)獨小游戲

    Java實現(xiàn)數(shù)獨小游戲

    這篇文章主要為大家詳細介紹了Java實現(xiàn)數(shù)獨小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • 淺談SpringMVC中的session用法及細節(jié)記錄

    淺談SpringMVC中的session用法及細節(jié)記錄

    下面小編就為大家?guī)硪黄獪\談SpringMVC中的session用法及細節(jié)記錄。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 關于Long和Integer相互轉換方式

    關于Long和Integer相互轉換方式

    這篇文章主要介紹了關于Long和Integer相互轉換方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • springboot 使用ThreadLocal的實例代碼

    springboot 使用ThreadLocal的實例代碼

    這篇文章主要介紹了springboot 使用ThreadLocal的實例代碼,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringBoot利用dag加速Spring beans初始化的方法示例

    SpringBoot利用dag加速Spring beans初始化的方法示例

    本文介紹了利用DAG加速SpringBoot中Spring beans初始化,先解釋了DAG 概念及特性,包括節(jié)點入度出度、拓撲排序等,接著闡述加速Spring Bean初始化的實現(xiàn)思路,如識別依賴關系構建DAG、拓撲排序、并行初始化Bean及與Spring集成,還展示了相關代碼工程、測試結果及引用
    2024-12-12
  • Java中特殊運算符及其應用詳解

    Java中特殊運算符及其應用詳解

    當涉及位操作和位級運算時,Java?提供了一組特殊的運算符,即左移(<<)和右移(>>)運算符,下面小編就帶大家深入了解一下它們的具體應用吧
    2023-08-08
  • Redisson可重入鎖解鎖邏輯詳細講解

    Redisson可重入鎖解鎖邏輯詳細講解

    Redisson開源框架是一個Redis的分布式鎖的現(xiàn)成實現(xiàn)方案,是Redis的java實現(xiàn)的客戶端。通過Netty支持非阻塞I/O。Redisson實現(xiàn)了分布式鎖的自動續(xù)期機制、鎖的互斥自等待機制、鎖的可重入加鎖與釋放鎖的機制
    2023-02-02
  • 淺談Java三目運算

    淺談Java三目運算

    本文給大家主要介紹的是java中三目運算的詳細介紹,并附上2個示例,希望對大家理解三目運算能夠有所幫助。
    2015-03-03
  • 使用jenkins部署springboot項目的方法步驟

    使用jenkins部署springboot項目的方法步驟

    這篇文章主要介紹了使用jenkins部署springboot項目的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04

最新評論

贵州省| 宁武县| 通化县| 修文县| 香格里拉县| 阳信县| 兴文县| 随州市| 永城市| 海门市| 瓦房店市| 阿拉善右旗| 邳州市| 巍山| 康平县| 靖远县| 太仆寺旗| 融水| 云浮市| 怀宁县| 天祝| 庆云县| 观塘区| 安顺市| 泰来县| 乌兰县| 射阳县| 丰都县| 冀州市| 胶南市| 富川| 北安市| 武威市| 东辽县| 寻乌县| 万山特区| 广饶县| 南岸区| 准格尔旗| 卢氏县| 隆尧县|