



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
java中的回调函数利用接口在WINDOWS中,程序员想让系统DLL调用自己编写的一个方法,于是利用DLL当中回调函数(CALLBACK)的接口来编写程序,使它调用,这个就称为回调。在调用接口时,需要严格的按照定义的参数和方法调用,并且需要处理函数的异步,否则会导致程序的崩溃。这样的解释似乎还是比较难懂,这里举个简单的例子,程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法。目的达到。在C/C+中,要用回调函数,被调函数需要告诉调用者自己的指针地址,但在JAVA中没有指针,怎么办?我们可以通过接口(interface)来实现定义回调函数。假设我是程序员A,以下是我的程序a:publicclassCallerprivateMyCallInterfacemc;publicCaller()publicsetI(MyCallInterfacemc)this.mc=mc;publiccall()mc.fuc();/Caller的调用方法这里需要定义一个接口,以便程序员B根据我的定义编写程序实现接口。publicinterfaceMyCallInterfacepublicvoidfuc();于是,程序员B只需要实现这个接口就能达到回调的目的了:publicclasscalleeimplementsMyCallInterfacepublicvoidfuc()/dosomething下面是调用过程:publicclasscallbackspublicstaticvoidmain(Stringargs)Calleec1=newCallee();Callercaller=newCaller();caller.setI(c1);caller.call();在以上代码中,caller是调用者,callee是被调用者,callbacks表示调用过程。先产生了Callee对象,利用这个callee对象产生的Caller对象则携带了一些信息(即与Callee对象的关联),所以Caller对象可以利用自己的call方法调用Callee的方法。这就是整个回调过程。B产生A,则A具有调用B的方法的能力。caller中具有的接口引用很关键。实现了此接口引用的callee只需将自己的引用传给Caller。一般来说分为以下几步:1. 声明回调函数的统一接口interfaceA,包含方法fuc();2. 在调用类caller内将该接口设置为私有成员privateAXXX;3. 在caller内提供一个public方法,可以将外部“该接口A的实现类的引用”通过形参传给XXX;4. caller的某个方法call()中会用到XXX.fuc()方法;5. 在caller的实例中,将实现了A接口的对象的引用传给caller,后调用call()方法;注意:步骤3中亦可以使用Caller的构造函数直接实现。JAVA排序的compare接口:1. interfaceCompare2. booleanlessThan(Objectlhs,Objectrhs);3. booleanlessThanOrEqual(Objectlhs,Objectrhs);4. 5. 6. importjava.util.*;7. 8. publicclassSortVectorextendsVector9. privateComparecompare;/私有接口成员10. publicSortVector(Comparecomp)11. compare=comp;12. 13. publicvoidsort()14. quickSort(0,size()-1);15. 16. privatevoidquickSort(intleft,intright)17. if(rightleft)18. Objecto1=elementAt(right);19. inti=left-1;20. intj=right;21. while(true)22. while(compare.lessThan(23. elementAt(+i),o1)24. ;25. while(j0)26. if(compare.lessThanOrEqual(27. elementAt(-j),o1)28. break;29. if(i=j)break;30. swap(i,j);31. 32. swap(i,right);33. quickSort(left,i-1);34. quickSort(i+1,right);35. 36. 37. privatevoidswap(intloc1,intloc2)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- mtbe考试试卷及答案
- 电网业务知识培训课件
- 电缆厂知识培训课件
- 电磁兼容原理课件接地
- 高端酒销售基础知识培训课件
- 新解读《GB-T 32151.11-2018温室气体排放核算与报告要求 第11部分- 煤炭生产企业》
- Ochracenomicin-B-生命科学试剂-MCE
- Acetohexamide-d11-生命科学试剂-MCE
- MLN-591-MLN2704-antibody-生命科学试剂-MCE
- 保育大赛考试试题题库及答案
- JJF 1959-2021 通用角度尺校准规范 高清晰版
- 通信原理第7版樊昌信版新版
- 口腔预防医学第九章其他口腔疾病的预防
- 盂兰盆供简易仪轨
- 一汽商用车企业级BOM技术方案V1.7
- JJF 1117-2010计量比对
- FZ/T 01093-2008机织物结构分析方法织物中拆下纱线线密度的测定
- 中国马克思主义与当代(社会问题)
- EMR术的配合要点
- 1844年经济学哲学手稿课件
- 厨房设备备品备件及专用工具库
评论
0/150
提交评论