Java學習之隨堂筆記系列——day22

1、Lambda表達式
    面向對象編程思想:哪個對象有做這件事的功能就找哪個對象。先創建對象再調方法。
    函數式編程思想:函數指的就是方法,不關心是誰,不需要我們創建對象,把創建對象的操作交給jvm完成。
    Lambda表達式的好處:
        匿名內部類簡化了實現類和子類的編寫,使用Lambda表達式簡化了部分匿名內部類的編寫。

    格式(記住):(方法的參數列表)->{方法體}

    Lambda表達式的簡化方式(記住):
        簡化1:任何情況下,lambda表達式的參數列表中的參數類型可以省略。
        簡化2:如果參數列表中有且僅有一個參數,那麼()可以省略。
        簡化3:如果方法體中有且僅有一條語句,那麼{}和;一起省略,如果有return,return也必須一起省略。

    注意事項(記住):使用條件
        1、Lambda表達式只能是接口類型。
        2、接口中有且僅有一個抽象方法。

    Lambda表達式和匿名內部類的區別?
        1、能用Lambda表達式的地方一定可以使用匿名內部類,反過來,能使用匿名內部類的地方不一定可以使用Lambda表達式。
        2、匿名內部類在編譯之後會生成class文件,Lambda表達式編譯之後不會生成class文件。

2、接口
    默認方法:
        格式:public default 返回值類型 方法名(參數列表){}  //public可以省略
        例如:
        //定義默認方法
        default void defaultMethod(){  //默認省略了public
            System.out.println("這是Inter接口中的defaultMethod默認方法。。。");
        }
        注意:默認方法如果被實現類重寫,那麼執行的就是重寫的方法。但是重寫的方法沒有default關鍵字
    靜態方法:
        格式:public static 返回值類型 方法名(參數列表){}   //public可以省略
        例如:
            //定義靜態方法
            static void staticMethod(){
                System.out.println("這是Inter接口中的staticMethod靜態方法。。。");
            }
        注意實現:接口的靜態方法只能通過接口名調用,不能使用實現類名或者實現類的對象調用。
    私有方法:
        格式1:private 返回值類型 方法名(參數列表){}
        格式2:private static 返回值類型 方法名(參數列表){}
        作用:主要用於在接口內部抽取默認方法和靜態方法公共部分代碼,私有方法只能在接口內部的默認方法和靜態方法中訪問。

3、方法引用(瞭解)
    方法引用:在Lambda表達式的方法體中,如果方法體的代碼有且僅有一條,並且符合 :對象.方法(參數)、類名.方法(參數)、new 對象()
            那麼就可以直接引用這個方法,來簡化lambda表達式的書寫。
    好處:替換Lambda表達式的書寫。
    注意事項:如果Lambda表達式參數列表中有參數,那麼在使用方法引用時也一定會將這個參數傳遞給引用的方法。
    方法應用的格式:
        對象.方法(參數)------>對象::方法名    注意:不需要()
        類名.方法(參數)------>類名::方法名
        new 對象()---------->類名::new

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章