亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

会昌县| 安吉县| 桦甸市| 民乐县| 高碑店市| 康乐县| 鄂州市| 松江区| 娄烦县| 图木舒克市| 莆田市| 大理市| 晋江市| 东莞市| 泽州县| 安化县| 灵武市| 托克托县| 乳山市| 河池市| 文山县| 武功县| 积石山| 山西省| 浙江省| 都昌县| 鄢陵县| 达拉特旗| 桦甸市| 碌曲县| 惠来县| 泰顺县| 尼勒克县| 葵青区| 霞浦县| 东乌| 山东省| 吉林省| 达孜县| 屏东县| 上饶县|