扣丁學(xué)堂解讀Java視頻教程之Lambda表達(dá)式詳解
2018-01-09 14:09:17
1187瀏覽
今天扣丁學(xué)堂給大家介紹一下關(guān)于Java視頻教程之Lambda表達(dá)式詳解,首先Lambda表達(dá)式(Lambdaexpression)是一個(gè)匿名函數(shù),即沒有函數(shù)名的函數(shù)。Lambda表達(dá)式可以表示閉包。Lambda表達(dá)式是一個(gè)表達(dá)式,程序中被作為一個(gè)值來使用。
Java函數(shù)通常是我們類中定義的行為,格式如下:
修飾符返回類型函數(shù)名(參數(shù)列表){
語句塊
return返回值;
}
修飾符:函數(shù)的可見性,決定函數(shù)的使用范圍
返回類型:函數(shù)的輸出信息,與return配合使用
函數(shù)名:函數(shù)標(biāo)識(shí)
參數(shù)列表:函數(shù)的輸入信息
語句塊:函數(shù)執(zhí)行的操作
這就是函數(shù)的基本格式。
代碼中函數(shù)名,返回類型是一定要有的,其他的可有可無。
所以代碼中最簡單的函數(shù)定義格式如下:
返回類型函數(shù)名();
今天扣丁學(xué)堂給大家介紹一下關(guān)于Java視頻教程之Lambda表達(dá)式詳解,首先Lambda表達(dá)式(Lambdaexpression)是一個(gè)匿名函數(shù),即沒有函數(shù)名的函數(shù)。Lambda表達(dá)式可以表示閉包。Lambda表達(dá)式是一個(gè)表達(dá)式,程序中被作為一個(gè)值來使用。
Java函數(shù)通常是我們類中定義的行為,格式如下:
修飾符返回類型函數(shù)名(參數(shù)列表){
語句塊
return返回值;
}
修飾符:函數(shù)的可見性,決定函數(shù)的使用范圍
返回類型:函數(shù)的輸出信息,與return配合使用
函數(shù)名:函數(shù)標(biāo)識(shí)
參數(shù)列表:函數(shù)的輸入信息
語句塊:函數(shù)執(zhí)行的操作
這就是函數(shù)的基本格式。
代碼中函數(shù)名,返回類型是一定要有的,其他的可有可無。
所以代碼中最簡單的函數(shù)定義格式如下:
返回類型函數(shù)名();
Lambda表達(dá)式格式
我們說Lambda表達(dá)式是一個(gè)匿名函數(shù),那我們來看一下Lambda表達(dá)式的格式。
(參數(shù)列表)->{語句塊}
參數(shù)列表:函數(shù)的輸入信息
->:Lambda表達(dá)式關(guān)鍵符(也可以理解成關(guān)鍵字)
語句塊:函數(shù)執(zhí)行的操作
“->”是必須有的,我們來看下最簡單的Lambda表達(dá)式結(jié)構(gòu):
()->{}
Lambda表達(dá)式是一個(gè)表達(dá)式,程序中被作為一個(gè)值來使用。JAVA語言是強(qiáng)類型面向?qū)ο蟮恼Z言,所以必須提供一種數(shù)據(jù)類型作為Lambda表達(dá)式的返回值類型、符合JAVA中函數(shù)格式的定義、符合面向?qū)ο笠?guī)則,所以最終Lambda表達(dá)式要有一個(gè)映射成JAVA對(duì)象的過程。
函數(shù)式接口
函數(shù)式接口是用來完成Lambda表達(dá)式映射成JAVA對(duì)象的一種接口,確切的說把接口中僅存的一個(gè)抽象方法和Lambda表達(dá)式綁定并完成對(duì)象的實(shí)例化。
那么接口是如何與Lambda表達(dá)式建立類型關(guān)系的?
接口的抽象方法。下面舉例說明。
定一個(gè)函數(shù)式接口
/**
*@authorStephenYue
*/
publicinterfaceNothing{
voiddoNothing();
}
我們?cè)诮涌诶锒x了一個(gè)沒有參數(shù)、返回值的抽象方法。
接口我們定義好了,需要我們定義接口的實(shí)現(xiàn)方式。我們選取Lambda表達(dá)式來完成這個(gè)實(shí)現(xiàn)。
//指定接口中方法的實(shí)現(xiàn)過程并創(chuàng)建對(duì)象
Nothingnothing=()->{};
nothing.doNothing();
給Nothing接口中doNothing方法指定了一個(gè)空實(shí)現(xiàn)的Lambda表達(dá)式。即沒有參數(shù)、沒有返回值、什么都不做的一個(gè)空實(shí)現(xiàn)。所以執(zhí)行之后沒有任何結(jié)果。我們改一下實(shí)現(xiàn)方式。
Nothingnothing=()->{
System.out.println("helloLambda!");
};
nothing.doNothing();
新的Lambda表達(dá)式實(shí)現(xiàn)同樣符合接口中抽象方法定義的要求,不過程序執(zhí)行完,會(huì)在控制臺(tái)輸出:helloLambda!
總之Lambda表達(dá)式的出現(xiàn),提供了新的接口實(shí)現(xiàn)方式。接口中抽象方法名字是Lambda表達(dá)式的標(biāo)識(shí)符,接口中參數(shù)類型對(duì)應(yīng)Lambda表達(dá)式的參數(shù)類型,接口中返回類型對(duì)應(yīng)Lambda表達(dá)式返回類型,Lambda表達(dá)式的語句塊來完成抽象方法的邏輯實(shí)現(xiàn)。
以上就是關(guān)于扣丁學(xué)堂Java視頻教程之Lambda表達(dá)式的詳細(xì)介紹,最后扣丁學(xué)堂是互聯(lián)網(wǎng)IT技術(shù)內(nèi)容目前提供的熱門開發(fā)課程有JavaEE、全棧HTML5、PHP、Python人工智能+全棧、UI、大數(shù)據(jù)、VR/AR、Linux云計(jì)算、軟件測試、安卓、iOS等課程??鄱W(xué)堂不僅有專業(yè)的老師和課程體系,還有大量的零基礎(chǔ)JavaEE培訓(xùn)視頻教程供學(xué)員觀看學(xué)習(xí),想要學(xué)習(xí)的話就抓緊時(shí)間行動(dòng)吧。Java技術(shù)交流群:670348138。
我們說Lambda表達(dá)式是一個(gè)匿名函數(shù),那我們來看一下Lambda表達(dá)式的格式。
(參數(shù)列表)->{語句塊}
參數(shù)列表:函數(shù)的輸入信息
->:Lambda表達(dá)式關(guān)鍵符(也可以理解成關(guān)鍵字)
語句塊:函數(shù)執(zhí)行的操作
“->”是必須有的,我們來看下最簡單的Lambda表達(dá)式結(jié)構(gòu):
()->{}
Lambda表達(dá)式是一個(gè)表達(dá)式,程序中被作為一個(gè)值來使用。JAVA語言是強(qiáng)類型面向?qū)ο蟮恼Z言,所以必須提供一種數(shù)據(jù)類型作為Lambda表達(dá)式的返回值類型、符合JAVA中函數(shù)格式的定義、符合面向?qū)ο笠?guī)則,所以最終Lambda表達(dá)式要有一個(gè)映射成JAVA對(duì)象的過程。
函數(shù)式接口
函數(shù)式接口是用來完成Lambda表達(dá)式映射成JAVA對(duì)象的一種接口,確切的說把接口中僅存的一個(gè)抽象方法和Lambda表達(dá)式綁定并完成對(duì)象的實(shí)例化。
那么接口是如何與Lambda表達(dá)式建立類型關(guān)系的?
接口的抽象方法。下面舉例說明。
定一個(gè)函數(shù)式接口
/**
*@authorStephenYue
*/
publicinterfaceNothing{
voiddoNothing();
}
我們?cè)诮涌诶锒x了一個(gè)沒有參數(shù)、返回值的抽象方法。
接口我們定義好了,需要我們定義接口的實(shí)現(xiàn)方式。我們選取Lambda表達(dá)式來完成這個(gè)實(shí)現(xiàn)。
//指定接口中方法的實(shí)現(xiàn)過程并創(chuàng)建對(duì)象
Nothingnothing=()->{};
nothing.doNothing();
給Nothing接口中doNothing方法指定了一個(gè)空實(shí)現(xiàn)的Lambda表達(dá)式。即沒有參數(shù)、沒有返回值、什么都不做的一個(gè)空實(shí)現(xiàn)。所以執(zhí)行之后沒有任何結(jié)果。我們改一下實(shí)現(xiàn)方式。
Nothingnothing=()->{
System.out.println("helloLambda!");
};
nothing.doNothing();
新的Lambda表達(dá)式實(shí)現(xiàn)同樣符合接口中抽象方法定義的要求,不過程序執(zhí)行完,會(huì)在控制臺(tái)輸出:helloLambda!
總之Lambda表達(dá)式的出現(xiàn),提供了新的接口實(shí)現(xiàn)方式。接口中抽象方法名字是Lambda表達(dá)式的標(biāo)識(shí)符,接口中參數(shù)類型對(duì)應(yīng)Lambda表達(dá)式的參數(shù)類型,接口中返回類型對(duì)應(yīng)Lambda表達(dá)式返回類型,Lambda表達(dá)式的語句塊來完成抽象方法的邏輯實(shí)現(xiàn)。
以上就是關(guān)于扣丁學(xué)堂Java視頻教程之Lambda表達(dá)式的詳細(xì)介紹,最后扣丁學(xué)堂是互聯(lián)網(wǎng)IT技術(shù)內(nèi)容目前提供的熱門開發(fā)課程有JavaEE、全棧HTML5、PHP、Python人工智能+全棧、UI、大數(shù)據(jù)、VR/AR、Linux云計(jì)算、軟件測試、安卓、iOS等課程??鄱W(xué)堂不僅有專業(yè)的老師和課程體系,還有大量的零基礎(chǔ)JavaEE培訓(xùn)視頻教程供學(xué)員觀看學(xué)習(xí),想要學(xué)習(xí)的話就抓緊時(shí)間行動(dòng)吧。Java技術(shù)交流群:670348138。
【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】
查看更多關(guān)于“Java開發(fā)資訊”的相關(guān)文章>>
標(biāo)簽:
JavaEE視頻教程
JavaEE培訓(xùn)
JavaEE開發(fā)工程師
Java培訓(xùn)