2019版j第二階段day13l方法引用_第1頁
2019版j第二階段day13l方法引用_第2頁
2019版j第二階段day13l方法引用_第3頁
2019版j第二階段day13l方法引用_第4頁
2019版j第二階段day13l方法引用_第5頁
已閱讀5頁,還剩61頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Lambda&接口更新&方法引用昨日復習u網絡編程的三要素硬 、 、件系統u兩種傳輸協議硬件、系統昨日復習u網絡編程的三要素硬IP 、 端口 、 協議件系統u兩種傳輸協議 UPD 、TCP系統Contents目 u Lambda表達式u 接口組成的更新u方法引用u 【應用】能夠理解Lambda的使用方式u 【應用】能夠理解接口的更改u 【應用】能夠理解方法引用的使用方式目標TARGETu Lambda有什么用要點提示體驗Lambda表達式掌握程度:理解1.體驗Lambda表達式結視n 方式1: 定義一個類MyRunnable實現Runnable接口,重寫run()方法 創建My

2、Runnable類的對象 創建Thread類的對象,把MyRunnable的對象作為構造參數傳遞 啟動線程n 方式2: 匿名內部類的方式改進n 方式3: Lambda表達式的方式改進n Lambda的作用: 簡化了代碼。用更簡潔的代碼完成功能1.體驗Lambda表達式課堂問答視知識總結結u Lambda的寫法要點提示Lambda表達式的標準格式掌握程度:理解2. Lambda表達式的標準格式結視答n 1、Lambda的組成部分?2. Lambda表達式的標準格式結課堂問答答視課堂問答n 組成Lambda表達式的三要素: 形式參數,箭頭,代碼塊n 格式:(形式參數) - 代碼塊 形式參數:如果有

3、多個參數,參數之間用逗號隔開;如果沒有參數,留 空即可 -:由英文中畫線和大于符號組成,固定寫法。代表指向動作 代碼塊:是我們具體要做的事情,也就是以前我們寫的方法體內容2. Lambda表達式的標準格式課堂問答視知識總結結答u 抽象方法無參無返回值的Lambda寫法要點提示Lambda表達式練習1掌握程度:應用3. Lambda表達式練習1結視練n 需求描述 定義一個接口(Eatable),里面定義一個抽象方法:void eat(); 定義一個測試類(EatableDemo),在測試類中提供兩個方法一個方法是:useEatable(Eatable e)一個方法是主方法,在主方法中調用useE

4、atable方法3. Lambda表達式練習1課堂問答視知識總結結練練習u 動動手,練一下Lambda表達式吧!提示u定義一個接口(Eatable) 里面定義一個抽象方法:void eat();u定義一個測試類(EatableDemo),在測試類中提供兩個方法一個方法是:useEatable(Eatable e)一個方法是主方法,在主方法中調用useEatable方法10分鐘3. Lambda表達式練習1Lambda表達式鞏固練習視結練u 抽象方法帶參無返回值的Lambda寫法要點提示Lambda表達式練習2掌握程度:應用4. Lambda表達式練習2結視練n 需求描述 定義一個接口(Flya

5、ble),里面定義一個抽象方法:void fly(String s); 定義一個測試類(FlyableDemo),在測試類中提供兩個方法一個方法是:useFlyable(Flyable f)一個方法是主方法,在主方法中調用useFlyable方法4. Lambda表達式練習2課堂問答視知識總結結練練習u 動動手,練一下Lambda表達式吧!提示u 定義一個接口(Flyable)里面定義一個抽象方法:void fly(String s);u 定義一個測試類(FlyableDemo),在測試類中提供兩個方法一個方法是:useFlyable(Flyable f)一個方法是主方法,在主方法中調用use

6、Flyable方法10分鐘4. Lambda表達式練習2Lambda表達式鞏固練習視結練u 抽象方法帶參帶返回值的Lambda寫法要點提示Lambda表達式練習3掌握程度:應用5. Lambda表達式練習3結視練n 需求描述 定義一個接口(Addable),里面定義一個抽象方法:int add(int x,int y); 定義一個測試類(AddableDemo),在測試類中提供兩個方法一個方法是:useAddable(Addable a)一個方法是主方法,在主方法中調用useAddable方法 5. Lambda表達式練習3課堂問答視知識總結結練練習u 動動手,練一下Lambda表達式吧!提示

7、u 定義一個接口(Addable),里面定義一個抽象方法:int add(int x,int y);u 定義一個測試類(AddableDemo),在測試類中提供兩個方法一個方法是:useAddable(Addable a)一個方法是主方法,在主方法中調用useAddable方法10分鐘5. Lambda表達式練習3Lambda表達式鞏固練習視結練u 簡化寫法的規則要點提示Lambda表達式的省略模式掌握程度:應用6. Lambda表達式的省略模式結視練n 省略規則 參數類型可以省略。但是有多個參數的情況下,不能只省略一個 如果參數有且僅有一個,那么小括號可以省略 如果代碼塊的語句只有一條,可以

8、省略大括號,分號,return 6. Lambda表達式的省略模式課堂問答視知識總結結練練習u 動動手,練一下Lambda省略格式吧!提示u 省略參數數據類型u 省略參數小括號u 省略大括號,結束封號,return關鍵字10分鐘6. Lambda表達式的省略模式Lambda省略格式鞏固練習視結練u Lambda的書寫注意事項要點提示Lambda表達式的注意事項掌握程度:理解7. Lambda表達式的注意事項結視n 使用Lambda必須要有接口,并且要求接口中有且僅有一個抽象方法n 必須有上下文環境,才能推導出Lambda對應的接口根據局部變量的賦值得知Lambda對應的接口Runnable r

9、 = () - System.out.println(Lambda表達式);根據調用方法的參數得知Lambda對應的接口new Thread() - System.out.println(Lambda表達式).start();7. Lambda表達式的注意事項課堂問答視知識總結結u Lambda在特定情況下可以代替匿名內部類要點提示Lambda表達式和匿名內部類的區別掌握程度:理解8. Lambda表達式和匿名內部類的區別結視n 所需類型不同 匿名內部類:可以是接口,也可以是抽象類,還可以是具體類 Lambda表達式:只能是接口n 使用限制不同 如果接口中有且僅有一個抽象方法,可以使用Lamb

10、da表達式,也可以使用匿名內部類 如果接口中多于一個抽象方法,只能使用匿名內部類,而不能使用Lambda表達式n 實現原理不同 匿名內部類:編譯之后,產生一個單獨的.class字節碼文件 Lambda表達式:編譯之后,沒有一個單獨的.class字節碼文件。對應的字節碼會在運行的時候動態生成8. Lambda表達式和匿名內部類的區別課堂問答視知識總結結u JDK升級帶來接口組成的更新要點提示接口組成更新概述掌握程度:理解9.接口組成更新概述結視n 接口的組成 常量public static final 抽象方法public abstract 默認方法(Java 8) 靜態方法(Java 8) 私

11、有方法(Java 9)9.接口組成更新概述課堂問答視知識總結結上午復習u Lambda表達式的三部分硬件系 統uLambda表達式的作用硬件系統系統uLambda表達式的使用條件硬件 系上午復習u Lambda表達式的三部分 形式參數,箭頭,代碼塊系 統uLambda表達式的作用 啊簡化代碼件系統系統uLambda表達式的使用條件中接口中的抽象方法只有一個件 系u 接口中默認方法的格式要點提示接口中默認方法掌握程度:應用10.接口中默認方法結視練n 接口中默認方法的定義格式 格式:public default 返回值類型 方法名(參數列表) 范例:public default void sho

12、w3() n 接口中默認方法的注意事項 默認方法不是抽象方法,所以不強制被重寫。但是可以被重寫,重寫的時候去掉default關鍵字 public可以省略,default不能省略10.接口中默認方法課堂問答視知識總結結練練習u 動動手,練一下默認方法吧!提示u 給接口中定義一個默認方法u 在測試類中調用默認方法5分鐘10.接口中默認方法默認方法的鞏固練習視結練u 接口中靜態方法的格式要點提示接口中靜態方法掌握程度:應用11.接口中靜態方法結視練n 接口中靜態方法的定義格式 格式:public static 返回值類型 方法名(參數列表) 范例:public static void show()

13、n 接口中靜態方法的注意事項 靜態方法只能通過接口名調用,不能通過實現類名或者對象名調用 public可以省略,static不能省略11.接口中靜態方法課堂問答視知識總結結練練習u 動動手,練一下接口中靜態方法吧!提示u 給接口中定義一個靜態方法u 測試類中調用靜態方法5分鐘11.接口中靜態方法靜態方法的鞏固練習視結練u 接口中私有方法的格式要點提示接口中私有方法掌握程度:應用12.接口中私有方法結視練n 私有方法的出現原因 Java 9中新增了帶方法體的私有方法,這其實在Java 8中就埋下了伏筆:Java 8允許在接口中定義帶方法體的默認方法和靜態方法。這樣可能就會引發一個問題:當兩個默認

14、方法或者靜態方法中包含一段相同的代碼實現時,程序必然考慮將這段實現代碼抽取成一個共性方法,而這個共性方法是不需要讓別人使用的,因此用私有給隱藏起來,這就是Java 9增加私有方法的必然性n 接口中私有方法的定義格式 格式1:private 返回值類型 方法名(參數列表) 范例1:private void show() 格式2:private static 返回值類型 方法名(參數列表) 范例2:private static void method() n 接口中私有方法的注意事項 默認方法可以調用私有的靜態方法和非靜態方法 靜態方法只能調用私有的靜態方法12.接口中私有方法課堂問答視知識總結結

15、練練習u 動動手,練一下接口中私有方法吧!提示u 給接口中定義二個默認方法u 給接口中定義一個私有方法u 在默認方法中調用私有方法5分鐘12.接口中私有方法私有方法的鞏固練習視結練u 方法應用的作用要點提示體驗方法引用掌握程度:理解13.體驗方法引用結視n 在使用Lambda表達式的時候,我們實際上傳遞進去的代碼就是一種解決方案:拿參數做操作n 那么考慮一種情況:如果我們在Lambda中所指定的操作方案,已經有地方存在相同方案,那是否還有必要再寫重復邏輯呢? 答案肯定是沒有必要n 那我們又是如何使用已經存在的方案的呢? 這就是我們要講解的方法引用,我們是通過方法引用來使用已經存在的方案13.體

16、驗方法引用課堂問答視知識總結結u 方法引用的符號要點提示方法引用符掌握程度:理解14.方法引用符結視n 方法引用符 : 該符號為引用運算符,而它所在的表達式被稱為方法引用n 方法引用的好處 代碼更加的簡潔n 推導與省略 如果使用Lambda,那么根據“可推導就是可省略”的原則,無需指定參數類型,也無需指定的重載形式,它們都將被自動推導 如果使用方法引用,也是同樣可以根據上下文進行推導 方法引用是Lambda的孿生兄弟14.方法引用符課堂問答視知識總結結u 引用類中的靜態方法要點提示引用類方法掌握程度:應用15.引用類方法結視練n 格式 類名:靜態方法n 范例 Integer:parseInt

17、Integer類的方法:public static int parseInt(String s) 將此String轉換為int類型數據15.引用類方法課堂問答視知識總結結練練習u 動動手,練一下引用類的方法吧!提示u定義一個接口(Converter),里面定義一個抽象方法int convert(String s);u定義一個測試類(ConverterDemo),在測試類中提供兩個方法一個方法是:useConverter(Converter c)一個方法是主方法,在主方法中調用useConverter方法10分鐘15.引用類方法引用類方法的鞏固練習視結練u 引用對象的成員方法要點提示引用對象的實

18、例方法掌握程度:應用16.引用對象的實例方法結視練n 格式 對象:成員方法n 范例 HelloWorld:toUpperCase String類中的方法:public String toUpperCase() 將此String所有字符轉換為大寫16.引用對象的實例方法課堂問答視知識總結結練練習u 動動手,練一下引用成員方法吧!提示u 定義一個類(PrintString),里面定義一個方法public void printUpper(String s):把字符串參數變成大寫的數據,然后在控制臺輸出u定義一個接口(Printer),里面定義一個抽象方法void printUpperCase(Str

19、ing s)u定義一個測試類(PrinterDemo),在測試類中提供兩個方法一個方法是:usePrinter(Printer p)一個方法是主方法,在主方法中調用usePrinter方法10分鐘16.引用對象的實例方法引用對象成員方法的鞏固練習視結練u 引用類中的成員方法要點提示引用類的實例方法掌握程度:應用17.引用類的實例方法結視練n 格式 類名:成員方法n 范例 String:substringString類中的方法: public String substring(int beginIndex,int endIndex) 從beginIndex開始到endIndex結束,截取字符串。

20、返回一個子串,子串的長度為endIndex-beginIndex17.引用類的實例方法課堂問答視知識總結結練練習u 動動手,練一下引用類的成員方法吧!提示u定義一個接口(MyString),里面定義一個抽象方法:String mySubString(String s,int x,int y);u定義一個測試類(MyStringDemo),在測試類中提供兩個方法一個方法是:useMyString(MyString my)一個方法是主方法,在主方法中調用useMyString方法10分鐘17.引用類的實例方法引用類成員方法的鞏固練習視結練u 引用構造方法要點提示引用構造器掌握程度:應用18.引用構造器結視練n 格式 類名:newn

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論