函式式程式設計思想 Lambda表示式

2021-10-01 23:33:23 字數 2066 閱讀 2893

lambda是jdk1.8之後的新特性,傳統的程式設計思想是物件導向的,即想呼叫乙個方法時,需要建立乙個物件,再呼叫這個物件中的方法。而函式式程式設計只要結果正確,而不在意物件是誰,方法名是誰。物件導向的程式設計會產生大量的冗餘**(實現類物件,重寫方法等),而且這些冗餘**是必要的。而函式式程式設計思想,則大大減少了冗餘**。lambda表示式就是函式式程式設計思想的具體表現形式。

//比較傳統程式設計與lambda表示式

public

static

void

main

(string[

] args)})

.start()

;//2.函式式程式設計思想的lambda表示式

newthread((

)->).

start()

;}

lambda表示式使用前提:必須有介面,且介面中只有乙個抽象方法,又名「函式式介面」。

lambda表示式的格式:

(引數列表)->

lambda表示式也可以有更簡單的省略寫法,總的來說,可推導,就可省略:

可省略的內容:

1.(引數列表):資料型別可省略

2.(引數列表):只有乙個引數時,資料型別和()可省略

3.:如果方法體只有一行,可省略{}、return、;

注意:{}、return、;必須一起省略

eg:1.重寫方法無參無返回值時:

//inte***ce

public

inte***ce

cook

//main

public

static

void

main

(string[

] args));

//省略格式

invokecook((

)->system.out.

println

("吃飯嘍"))

;}public

static

void

invokecook

(cook cook)

2.重寫方法有參有返回值:

//person類

public

class

person

@override

public

inthashcode()

//省略構造器,getter、setter、tostring

}

public

static

void

main

(string[

] args));

//省略格式

collections.

sort

(people,

( o1, o2)

->o1.

getage()

- o2.

getage()

);//輸出

system.out.

println

(people)

;}

3.重寫方法有參無返回值時:

//inte***ce

public

inte***ce

calculator

//main

public

static

void

main

(string[

] args));

//省略格式

invokecalc

(120

,130

,(a,b)

->system.out.

println

(a+b));

}public

static

void

invokecalc

(int a,

int b,calculator calc)

函式式程式設計 Lambda表示式

1。不包含引數 runnable runnable system.out.println helloworld 只包含乙個引數 actionlistener actionlistener event system.out.println click 主體可以是一段 runnable runnable...

函式式程式設計 lambda表示式

1.定義 是一種匿名方法。2.作用 作為引數傳遞時語法簡潔,優雅,可讀性強。隨時建立和銷毀,減少程式耦合度。3.語法 定義 變數 lambda 形參 方法體 呼叫 變數 實參 4.說明 形參沒有可以不填 方法體只能有一條語句,且不支援賦值語句。lambda 匿名函式 語法 lambda 引數 函式體...

函式式程式設計和lambda表示式

一.介面的預設方法 1 在介面中新增乙個非抽象方法只需要使用乙個default 關鍵字就可以 2 我們把非抽象方法理解成乙個擴充套件方法,二.函式式程式設計 1.什麼是函式式程式設計 一切皆函式 2.將處理問題的粒度從類變成函式,從而可以更好的滿足系統對重用性,和擴充套件性的支援 3.可以將函式作為...