JAVA閉包

一、閉包的定義确憨。

有很多不同的人都對閉包過進行了定義驹碍,這里收集了一些。

# 是引用了自由變量函數(shù)坏瘩。這個函數(shù)通常被定義在另一個外部函數(shù)中,并且引用了外部函數(shù)中的變量媳板。 -- <<wikipedia>>

# 是一個可調(diào)用的對象桑腮,它記錄了一些信息,這些信息來自于創(chuàng)建它的作用域蛉幸。-- <>

# 是一個匿名的代碼塊,可以接受參數(shù)丛晦,并返回一個返回值奕纫,也可以引用和使用在它周圍的,可見域中定義的變量烫沙。--?Groovy?['ɡru:vi]

# 是一個表達式匹层,它具有自由變量及邦定這些變量的上下文環(huán)境

# 閉包允許你將一些行為封裝锌蓄,將它像一個對象一樣傳來遞去升筏,而且它依然能夠訪問到原來第一次聲明時的上下文

# 是指擁有多個變量和綁定了這些變量的環(huán)境的表達式(通常是一個函數(shù))瘸爽,因而這些變量也是該表達式的一部分您访。

# 閉包是可以包含自由(未綁定)變量代碼塊;這些變量不是在這個代碼塊或者任何全局上下文中定義的剪决,而是在定義代碼塊的環(huán)境中定義灵汪。

在這些定義中都有一些關(guān)鍵字:變量、函數(shù)柑潦、上下文等享言,閉包在回調(diào)函數(shù)函數(shù)式編程渗鬼、Lambda表達式中有重要的應(yīng)用览露,為了更深刻的理解閉包,我們會試圖通過JavaScript譬胎、C#JAVA的代碼進行舉例差牛,不過本次的重點還是通過JAVA如何這內(nèi)部類來實現(xiàn)閉包,以及閉包的應(yīng)用银择。

二多糠、示例

void?fun1(){
? ? final?String s="完事了";
? ? fun2(new?ICellBack(){
? ? ? ? ? ?@Override
? ? ? ? ? ? public?void?cellBack() {
? ? ? ? ? ? ?System.out.println(s);
? ? ? ? ? ? }
? ? });
}

void?fun2(ICellBack iCellBack){
? ? //做一些事情
? ? iCellBack.cellBack();
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末浩考,一起剝皮案震驚了整個濱河市夹孔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖搭伤,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件只怎,死亡現(xiàn)場離奇詭異,居然都是意外死亡怜俐,警方通過查閱死者的電腦和手機身堡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拍鲤,“玉大人贴谎,你說我怎么就攤上這事〖疚龋” “怎么了擅这?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長景鼠。 經(jīng)常有香客問我仲翎,道長,這世上最難降的妖魔是什么铛漓? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任溯香,我火速辦了婚禮,結(jié)果婚禮上浓恶,老公的妹妹穿的比我還像新娘玫坛。我一直安慰自己,他們只是感情好问顷,可當我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布昂秃。 她就那樣靜靜地躺著,像睡著了一般杜窄。 火紅的嫁衣襯著肌膚如雪肠骆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天塞耕,我揣著相機與錄音蚀腿,去河邊找鬼。 笑死扫外,一個胖子當著我的面吹牛莉钙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播筛谚,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼磁玉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了驾讲?” 一聲冷哼從身側(cè)響起蚊伞,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤席赂,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后时迫,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體颅停,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年掠拳,在試婚紗的時候發(fā)現(xiàn)自己被綠了癞揉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡溺欧,死狀恐怖喊熟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情姐刁,我是刑警寧澤逊移,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站龙填,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拐叉。R本人自食惡果不足惜岩遗,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望凤瘦。 院中可真熱鬧宿礁,春花似錦、人聲如沸蔬芥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽笔诵。三九已至返吻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間乎婿,已是汗流浹背测僵。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留谢翎,地道東北人捍靠。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像森逮,于是被迫代替她去往敵國和親榨婆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 本章將會介紹 閉包表達式尾隨閉包值捕獲閉包是引用類型逃逸閉包自動閉包枚舉語法使用Switch語句匹配枚舉值關(guān)聯(lián)值原...
    寒橋閱讀 1,554評論 0 3
  • 閉包是自包含的函數(shù)代碼塊谊迄,可以在代碼中被傳遞和使用。Swift 中的閉包與 C 和 Objective-C 中的代...
    莽原奔馬668閱讀 1,881評論 2 12
  • 閉包是自包含的函數(shù)代碼塊拖吼,可以在代碼中被傳遞和使用鳞上。Swift 中的閉包與 C 和 Objective-C 中的代...
    窮人家的孩紙閱讀 1,700評論 1 5
  • 春季多雨一不留神生病了…… 朋友卻要約你,不好意思拒絕吊档? 老板卻讓你周末加班篙议,想要請假? 生病臥床想要討點關(guān)心怠硼? ...
    葡萄動畫閱讀 327評論 0 0
  • 身心疲倦的一天鬼贱。 拖著頸椎腰椎大腿酸痛的身體坐上歸家的車。刷了會兒人類圖愛好者群放松神經(jīng)香璃,想起今天的寫作作業(yè)還沒開...
    奧秘閱讀 186評論 0 0