仓酷云

标题: 了解下JAVA的编写回调函数 [打印本页]

作者: 分手快乐    时间: 2015-1-18 11:34
标题: 了解下JAVA的编写回调函数
那这个对象有什么意义?现在很多用javabean的人就不能保证对象有完整的意义,不成熟的使用模式等导致代码疯狂增长,调试维护的时间要得多得多。在说性能之前,先说说你这个比较的来历。据说微软为了证明。net网页编程比java好。
有些Win32API函数请求将一个函数指针作为本人的参数利用。WindowsAPI函数随后就能够挪用自变量函数(一般是在今后产生特定的事务时)。这一手艺就叫作“回调函数”。回调函数的例子包含窗口历程和我们在打印过程当中设置的回调(为背景打印程序供应回调函数的地点,使其能更新形态,并在需要的时分中断打印)。
另外一个例子是API函数EnumWindows(),它能列举今朝体系内一切顶级窗口。EnumWindows()请求猎取一个函数指针作为本人的参数,然后搜刮由Windows外部保护的一个列表。关于列表内的每一个窗口,它城市挪用回调函数,将窗口句柄作为一个自变量传给回调。
为了在Java里到达一样的目标,必需利用com.ms.dll包里的Callback类。我们从Callback里承继,并作废callback()。这个办法只能靠近int参数,并会前往int或void。办法署名和详细的实行取决于利用这个回调的WindowsAPI函数。
如今,我们要举行的全体事情就是创立这个Callback衍生类的一个实例,并将其作为函数指针传送给API函数。随后,J/Direct会匡助我们主动完成残剩的事情。
上面这个例子挪用了Win32API函数EnumWindows();EnumWindowsProc类里的callback()办法会猎取每一个顶级窗口的句柄,猎取题目笔墨,并将其打印到把持台窗口。
  1. importcom.ms.dll.*;
  2. importcom.ms.win32.*;
  3. classEnumWindowsProcextendsCallback{
  4. publicbooleancallback(inthwnd,intlparam){
  5. StringBuffertext=newStringBuffer(50);
  6. User32.GetWindowText(
  7. hwnd,text,text.capacity()+1);
  8. if(text.length()!=0)
  9. System.out.println(text);
  10. returntrue;//tocontinueenumeration.
  11. }
  12. }
  13. publicclassShowCallback{
  14. publicstaticvoidmain(Stringargs[])
  15. throwsInterruptedException{
  16. booleanok=User32.EnumWindows(
  17. newEnumWindowsProc(),0);
  18. if(!ok)
  19. System.err.println("EnumWindowsfailed.");
  20. Thread.currentThread().sleep(3000);
  21. }
  22. }
复制代码
对sleep()的挪用同意窗口历程在main()加入前完成。
什么时候上述的三种开发工具能和三为一,什么时候java的竞争力才更强,才有机会拉拢更多的程序员投入到对java的开发上,因为到时的开发工具将会比.net网页编程的更简单。还有一点也很关键,什么时候java推出的jsf能成为真正意义上的标准。
作者: 活着的死人    时间: 2015-1-21 10:26
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
作者: 变相怪杰    时间: 2015-1-24 14:02
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
作者: 再见西城    时间: 2015-1-29 17:05
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
作者: 柔情似水    时间: 2015-1-29 23:10
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
作者: admin    时间: 2015-2-6 06:21
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
作者: 仓酷云    时间: 2015-2-15 14:13
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者: 第二个灵魂    时间: 2015-2-20 01:54
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
作者: 小女巫    时间: 2015-2-20 11:12
是一种突破用户端机器环境和CPU
作者: 飘飘悠悠    时间: 2015-3-6 16:59
Java 编程语言的风格十分接近C、C++语言。
作者: 谁可相欹    时间: 2015-3-11 11:17
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者: 海妖    时间: 2015-3-12 14:45
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
作者: 灵魂腐蚀    时间: 2015-3-13 00:58
Java 编程语言的风格十分接近C、C++语言。
作者: 深爱那片海    时间: 2015-3-20 07:37
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者: 精灵巫婆    时间: 2015-4-4 07:42
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者: 乐观    时间: 2015-4-24 12:50
是一种使网页(Web Page)产生生动活泼画面的语言
作者: 兰色精灵    时间: 2015-5-3 15:31
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
作者: 简单生活    时间: 2015-6-26 18:20
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
作者: 若天明    时间: 2015-7-10 06:33
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者: 不帅    时间: 2015-7-10 11:28
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者: 因胸联盟    时间: 2015-7-12 22:26
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2