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

java中的匿名內(nèi)部類總結(jié)

 更新時(shí)間:2017年09月25日 08:42:24   投稿:lqh  
這篇文章主要介紹了 java中的匿名內(nèi)部類總結(jié)的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下

 java中的匿名內(nèi)部類總結(jié)

匿名內(nèi)部類也就是沒有名字的內(nèi)部類

正因?yàn)闆]有名字,所以匿名內(nèi)部類只能使用一次,它通常用來簡(jiǎn)化代碼編寫

但使用匿名內(nèi)部類還有個(gè)前提條件:必須繼承一個(gè)父類或?qū)崿F(xiàn)一個(gè)接口

實(shí)例1:不使用匿名內(nèi)部類來實(shí)現(xiàn)抽象方法

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

運(yùn)行結(jié)果:eat something

可以看到,我們用Child繼承了Person類,然后實(shí)現(xiàn)了Child的一個(gè)實(shí)例,將其向上轉(zhuǎn)型為Person類的引用

但是,如果此處的Child類只使用一次,那么將其編寫為獨(dú)立的一個(gè)類豈不是很麻煩?

這個(gè)時(shí)候就引入了匿名內(nèi)部類

實(shí)例2:匿名內(nèi)部類的基本實(shí)現(xiàn)

 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(); 
  } 
}

運(yùn)行結(jié)果:eat something

可以看到,我們直接將抽象類Person中的方法在大括號(hào)中實(shí)現(xiàn)了

這樣便可以省略一個(gè)類的書寫

并且,匿名內(nèi)部類還能用于接口上

 實(shí)例3:在接口上使用匿名內(nèi)部類

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(); 
  } 
}

運(yùn)行結(jié)果:eat something

由上面的例子可以看出,只要一個(gè)類是抽象的或是一個(gè)接口,那么其子類中的方法都可以使用匿名內(nèi)部類來實(shí)現(xiàn)

最常用的情況就是在多線程的實(shí)現(xiàn)上,因?yàn)橐獙?shí)現(xiàn)多線程必須繼承Thread類或是繼承Runnable接口

 實(shí)例4:Thread類的匿名內(nèi)部類實(shí)現(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(); 
  } 
}

運(yùn)行結(jié)果:1 2 3 4 5

 實(shí)例5:Runnable接口的匿名內(nèi)部類實(shí)現(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(); 
  } 
}

運(yùn)行結(jié)果:1 2 3 4 5

如有疑問請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • 使用 Java 將 byte[] 轉(zhuǎn)換為 File 對(duì)象并上傳到外部服務(wù)器的方法(最新推薦)

    使用 Java 將 byte[] 轉(zhuǎn)換為 File 對(duì)象并上

    本文展示了如何通過 Java 和 Spring 來處理圖像文件的獲取、保存和上傳,通過 RestTemplate 獲取字節(jié)數(shù)組并將其轉(zhuǎn)換為 File 對(duì)象,可以輕松實(shí)現(xiàn)從遠(yuǎn)程 URL 獲取文件并將其上傳到外部服務(wù)器,感興趣的朋友一起看看吧
    2025-03-03
  • 詳解java封裝返回結(jié)果與RestControllerAdvice注解

    詳解java封裝返回結(jié)果與RestControllerAdvice注解

    這篇文章主要為大家介紹了java封裝返回結(jié)果與RestControllerAdvice注解實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • SpringCloud Zuul在何種情況下使用Hystrix及問題小結(jié)

    SpringCloud Zuul在何種情況下使用Hystrix及問題小結(jié)

    這篇文章主要介紹了SpringCloud Zuul在何種情況下使用Hystrix 及問題小結(jié),感興趣的朋友跟隨小編一起看看吧
    2018-11-11
  • java實(shí)現(xiàn)斗地主發(fā)牌功能

    java實(shí)現(xiàn)斗地主發(fā)牌功能

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)斗地主發(fā)牌功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • springboot中swagger、異步/定時(shí)/郵件任務(wù)的問題

    springboot中swagger、異步/定時(shí)/郵件任務(wù)的問題

    這篇文章主要介紹了springboot中swagger、異步/定時(shí)/郵件任務(wù)的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • 新建Maven工程出現(xiàn)Process?Terminated的問題解決

    新建Maven工程出現(xiàn)Process?Terminated的問題解決

    當(dāng)Maven出現(xiàn)"Process terminated"錯(cuò)誤時(shí),這通常是由于配置文件或路徑錯(cuò)誤導(dǎo)致的,本文主要介紹了新建Maven工程出現(xiàn)Process?Terminated的問題解決,感興趣的可以了解一下
    2024-04-04
  • SpringBoot中的@ConditionalOnMissingBean注解使用詳解

    SpringBoot中的@ConditionalOnMissingBean注解使用詳解

    這篇文章主要介紹了SpringBoot中的@ConditionalOnMissingBean注解使用詳解,@ConditionalOnMissingBean作用在@Bean定義上,也就是說在容器加載它作用的Bean時(shí),檢查容器中是否存在目標(biāo)類型,需要的朋友可以參考下
    2024-01-01
  • 通過java生成讀取二維碼詳解

    通過java生成讀取二維碼詳解

    這篇文章主要介紹了java二維碼生成讀取詳解,二維碼再生活在無處不在,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,下面和小編一起來學(xué)習(xí)一下吧
    2019-05-05
  • IDEA版最新MyBatis程序配置教程詳解

    IDEA版最新MyBatis程序配置教程詳解

    這篇文章主要介紹了IDEA版最新MyBatis程序配置教程詳解,需要的朋友可以參考下
    2020-07-07
  • java.util.Collection源碼分析與深度理解

    java.util.Collection源碼分析與深度理解

    這篇文章主要給大家介紹了關(guān)于java.util.Collection的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評(píng)論

永昌县| 象山县| 花垣县| 梅河口市| 舒城县| 邵东县| 中牟县| 当涂县| 东辽县| 武夷山市| 井冈山市| 武城县| 永善县| 西峡县| 桐乡市| 时尚| 乌拉特前旗| 新乡县| 林甸县| 阿图什市| 息烽县| 东至县| 潼关县| 宁远县| 宝坻区| 辉县市| 固原市| 丽江市| 通化市| 云浮市| 乡宁县| 醴陵市| 敦煌市| 来宾市| 沁阳市| 余庆县| 外汇| 长丰县| 娄底市| 若尔盖县| 库车县|