91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java Lambda表達式與匿名內部類的聯系和區別實例分析

發布時間:2020-10-13 18:20:05 來源:腳本之家 閱讀:329 作者:cakincqm 欄目:編程語言

本文實例講述了Java Lambda表達式與匿名內部類的聯系和區別。分享給大家供大家參考,具體如下:

一 點睛

Lambda表達式與匿名內部類存在如下相同點:

  • Lambda表達式與匿名內部類一樣,都可以直接訪問“effectively final”的局部變量,以及外部類的成員變量(包括實例變量和類變量)。
  • Lambda表達式創建的對象與匿名內部類生成的對象一樣, 都可以直接調用從接口繼承得到的默認方法。

Lambda表達式與匿名內部類主要存在如下區別:

  • 匿名內部類可以為任意接口創建實例——不管接口包含多少個抽象方法,只要匿名內部類實現所有的抽象方法即可。但Lambda表達式只能為函數式接口創建實例。
  • 匿名內部類可以為抽象類、甚至普通類創建實例,但Lambda表達式只能為函數式接口創建實例。
  • 匿名內部類實現的抽象方法的方法體允許調用接口中定義的默認方法;但Lambda表達式的代碼塊不允許調用接口中定義的默認方法。

二 實戰

1 代碼

@FunctionalInterface
interface Displayable
{
  //定義一個抽象方法和默認方法
  void display();
  default int add(int a,int b)
  {
    return a+b;
  }
}
public class LambdaAndInner {
  private int age =15;
  private static String name="外部類類變量";
  public void test()
  {
    String book="我是effectively final";
    Displayable dis =()->
    {
      //訪問 effectively final 的局部變量
      System.out.println("book局部變量為:"+book);
      //訪問外部類的類變量和實例變量
      System.out.println("外部類的age實例變量為:"+age);
      System.out.println("外部類的name類變量為:"+name);
    };
    dis.display();
    //調用dis對象從接口繼承的add方法
    System.out.println(dis.add(3,5));
  }
  public static void main(String[] agrs)
  {
    LambdaAndInner lambda = new LambdaAndInner();
    lambda.test();
  }
}

2 運行

book局部變量為:我是effectively final

外部類的age實例變量為:15

外部類的name類變量為:外部類類變量

8

更多java相關內容感興趣的讀者可查看本站專題:《Java面向對象程序設計入門與進階教程》、《Java數據結構與算法教程》、《Java操作DOM節點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》

希望本文所述對大家java程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

麟游县| 华亭县| 鹿泉市| 甘孜县| 三河市| 察雅县| 潮安县| 朔州市| 文山县| 平阴县| 玉田县| 德化县| 乌什县| 化德县| 探索| 岳西县| 罗江县| 宜兴市| 奉节县| 阳原县| 鸡东县| 商都县| 娄烦县| 乌拉特前旗| 密云县| 突泉县| 大名县| 富顺县| 金坛市| 太保市| 仁布县| 邓州市| 肃宁县| 延津县| 青浦区| 外汇| 莒南县| 开原市| 资中县| 永泰县| 陆良县|