




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、java中的回調(diào)函數(shù)java中的回調(diào)函數(shù)利用接口在WINDOWS中,程序員想讓系統(tǒng)DLL調(diào)用自己編寫的一個(gè)方法,于是利用DLL當(dāng)中調(diào)函數(shù)(CALLBACK)的接口來(lái)編寫程序,使它調(diào)用,這個(gè)就稱為調(diào)。在調(diào)用接口時(shí),需要嚴(yán)格的按照定義的參數(shù)和方法調(diào)用,并且需要處理函數(shù)的異步,否則會(huì)導(dǎo)致程序的崩潰。這樣的解釋似乎還是比較難懂,這里舉個(gè)簡(jiǎn)單的例子,程序員A寫了一段程序(程序a),其中預(yù)留有調(diào)函數(shù)接口,并封裝好了該程序。程序員要讓a調(diào)用自己的程序b中的一個(gè)方法,于是,他通過(guò)a中的接口調(diào)自己b中的方法。目的達(dá)至!L在C/C+中,要用調(diào)函數(shù),被調(diào)函數(shù)需要告訴調(diào)用者自己的指針地址,但在JAVA中沒(méi)有指針,怎么
2、辦?我們可以通過(guò)接口假設(shè)我是程序員A,以下是我的程序a:publicclassCallerprivateMyCalllnterfaceme;publicCaller()publicsetl(MyCalllnterfacemc)this.mc=mc;)publiccall()mc.fuc();/Caller的調(diào)用方法)這里需要定義一個(gè)接口,以便程序員B根據(jù)我的定義編寫程序?qū)崿F(xiàn)接口。publicinterfaceMyCalllnterfacepublicvoidfuc();)于是,程序員B只需要實(shí)現(xiàn)這個(gè)接口就能達(dá)到回調(diào)的目的了:publicclasscalleeimplementsMyCallln
3、terfacepublicvoidfuc()/dosomethingF面是調(diào)用過(guò)程:publicclasscallbackspublicstaticvoidmain(Stringargs)Calleecl=newCalleeQ;Callercaller=newCallerO;caller.setl(cl);caller.callO;)在以上代碼中,caller是調(diào)用者,callee是被調(diào)用者,callbacks表示調(diào)用過(guò)程。先產(chǎn)生了Callee對(duì)象,利用這個(gè)callee對(duì)象產(chǎn)生的Caller對(duì)象則攜帶了一些信息即與Callee對(duì)象的關(guān)聯(lián)),所以Caller對(duì)象可以利用官己的call方法調(diào)用Ca
4、llee的方法。這就是整調(diào)過(guò)程°B產(chǎn)生A,則A具有調(diào)用B的方法的能力。caller中具有的接口引用很關(guān)鍵。實(shí)現(xiàn)了此接口引用的callee只需將自己的引用傳給Caller。一般來(lái)說(shuō)分為以下幾步:1 .聲明回調(diào)函數(shù)的統(tǒng)一接口interfaceA,包含方法fucO;2 .在調(diào)用類caller內(nèi)將該接口設(shè)置為私有成員privateAXXX;3 .在caller內(nèi)提供一個(gè)public方法,可以將外部該接口A的實(shí)現(xiàn)類的引用通過(guò)形參傳給XXX;4 .caller的某個(gè)方法call。中會(huì)用到XXX.fucO方法;5 .在caller的實(shí)例中,將實(shí)現(xiàn)了A接口的對(duì)象的引用傳給callerf后調(diào)用call
5、。方法;注意:步驟3中亦可以使用Caller的構(gòu)造函數(shù)直接實(shí)現(xiàn)。JAVA排序的compare接口:1. interfaceCompare2.booleanlessThan(ObjectlhsfObjectrhs);3.booleanlessThanOrEqual(ObjectIhs,Objectrhs);4. 5.6. importjava.util.*;7.8.publicclassSortVectorextendsVector(9.privateComparecompare;/私有接口成員10.publicSortVector(Comparecomp)ILcompare=comp;12.
6、)13. publicvoidsortO14. quickSort(OfsizeO-1);15. 16.privatevoidquickSort(intleftfintright)(17.18.ht);19.20.21.if(right>left)Objectol=elementAt(riginti=left-1;intj=right;while也ue)22.while(compare.lessThan(23.elementAt(+ + i)f ol)24. ;25. while(j>0)26. if(compare.lessThanOrEqual(27. elementAt(-j)fol)28. break;29. if(i>=j)break;30. sw叩(i,j);31. )32. swap(ifright);33. quickSort(leftfi-1);34. quickSort(i+lfright);36.37.private void swap(int loci, intIoc
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 三方物流運(yùn)輸合同
- 集體“建立”用地使用權(quán)出租合同8篇
- 醫(yī)療器械運(yùn)輸合同
- 公司網(wǎng)絡(luò)線路維護(hù)合同8篇
- 委托運(yùn)輸合同樣本8篇
- 【合同范文】賣方信貸合同7篇
- 金屬切削工具戰(zhàn)略市場(chǎng)規(guī)劃報(bào)告
- 韓國(guó)股份轉(zhuǎn)讓合同范本
- 重慶小學(xué)英語(yǔ)模擬試卷
- 小學(xué)美育 申報(bào)書 課題
- 獵頭項(xiàng)目方案
- 2024年家庭教育指導(dǎo)師考試(重點(diǎn))題庫(kù)及答案(含各題型)
- 2024年儀表工程師崗位職責(zé)(20篇)
- 直腸癌術(shù)后的康復(fù)護(hù)理
- 性商老師課程培訓(xùn)課件
- 拆除鍋爐可行性報(bào)告
- 二級(jí)精神病醫(yī)院評(píng)審標(biāo)準(zhǔn)實(shí)施細(xì)則
- 全套ISO45001職業(yè)健康安全管理體系文件(手冊(cè)及程序文件)
- tdp燙傷處理應(yīng)急預(yù)案
- MQL4命令中文詳解手冊(cè)
- 水利工程危險(xiǎn)源辨識(shí)清單全
評(píng)論
0/150
提交評(píng)論