2.介面組成更新
3.方法引用
實現方式二
實現方式三
**演示
//方式一的執行緒類
public
class
myrunnable
implements
runnable
}public
class
lambdademo
// }).start();
//方式三
newthread((
)->).
start()
;}}
函式式程式設計思想概述
函式式思想則盡量忽略物件導向的複雜語法:「強調做什麼,而不是以什麼形式去做」
而我們要學習的lambda表示式就是函式式思想的體現
組成lambda表示式的三要素:
練習描述
無參無返回值抽象方法的練習
操作步驟
示例**
//介面
public
inte***ce
eatable
//實現類
public
class
eatableimpl
implements
eatable
}//測試類
public
class
eatabledemo})
;//lambda表示式
useeatable((
)->);
}private
static
void
useeatable
(eatable e)
}
示例**
public
inte***ce
flyable
public
class
flyabledemo})
; system.out.
println
("--------");
//lambda
useflyable
((string s)
->);
}private
static
void
useflyable
(flyable f)
}
示例**
public
inte***ce
addable
public
class
addabledemo);
}private
static
void
useaddable
(addable a)
}
**演示
public
inte***ce
addable
public
inte***ce
flyable
public
class
lambdademo
);//引數的型別可以省略
useaddable
((x, y)
->);
// useflyable((string s) -> );
//如果引數有且僅有乙個,那麼小括號可以省略
// useflyable(s -> );
//如果**塊的語句只有一條,可以省略大括號和分號
useflyable
(s -
> system.out.
println
(s))
;//如果**塊的語句只有一條,可以省略大括號和分號,如果有return,return也要省略掉
useaddable
((x, y)
-> x + y);}
private
static
void
useflyable
(flyable f)
private
static
void
useaddable
(addable a)
}
使用限制不同
實現原理不同
注意事項
引用類方法,其實就是引用類的靜態方法
類名::靜態方法
**演示
public
inte***ce
converter
public
class
converterdemo
private
static
void
useconverter
(converter c)
}
使用說明
lambda表示式被類方法替代的時候,它的形式引數全部傳遞給靜態方法作為引數
引用物件的例項方法,其實就引用類中的成員方法
**演示
public
class
printstring
}public
inte***ce
printer
public
class
printerdemo
private
static
void
useprinter
(printer p)
}
使用說明
lambda表示式被物件的例項方法替代的時候,它的形式引數全部傳遞給該方法作為引數
引用類的例項方法,其實就是引用類中的成員方法
**演示
public
inte***ce
mystring
public
class
mystringdemo
private
static
void
usemystring
(mystring my)
}
使用說明
lambda表示式被類的例項方法替代的時候
第乙個引數作為呼叫者
後面的引數全部傳遞給該方法作為引數
引用構造器,其實就是引用構造方法
**演示
public
class
student
public
student
(string name,
int age)
public string getname()
public
void
setname
(string name)
public
intgetage()
public
void
setage
(int age)
}public
inte***ce
studentbuilder
public
class
studentdemo
private
static
void
usestudentbuilder
(studentbuilder sb)
}
使用說明
lambda表示式被構造器替代的時候,它的形式引數全部傳遞給構造器作為引數
jdk8新特性 lambda表示式
1 什麼是lambda表示式?lambda表示式 也叫做閉包 是jdk8中的新語法,它允許我們將函式當成引數傳遞給某個方法或者將 本身作為資料進行處理。2 lambda表示式示例 2.1 用lambda表示式實現runnable 通過匿名內部類方法重寫runnable介面 new thread ne...
JDK1 8新特性 Lambda表示式
lambda表示式 函式式程式設計思想 物件導向 必須通過物件的形式來做事情.函式式思想 強調做什麼 注重結果 而不是怎麼做.lambda的格式 一些引數 介面中的抽象方法的引數,有就寫上,沒有空著 乙個箭頭 傳遞 把引數傳遞給 中的方法體 一段 重寫介面中的抽象方法的方法體 標準格式 引數型別 引...
jdk1 8新特性 Lambda表示式
要了解lambda表示式,我們先來說說函式式介面 函式式介面 介面中只有乙個抽象方法 有預設方法和靜態方法不影響 lambda表示式就是為了解決函式式介面而誕生的,可以先看乙個例子來了解 現在我們要實現下面介面的drive功能,我們能怎麼做呢?inte ce drive 1.通過一般類實現介面來重寫...