仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2971|回复: 20

[学习教程] 了解下JAVA的编写回调函数

[复制链接]
分手快乐 该用户已被删除
发表于 2015-1-18 11:34:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
那这个对象有什么意义?现在很多用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:56 | 显示全部楼层
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
变相怪杰 该用户已被删除
发表于 2015-1-24 14:02:00 来自手机 | 显示全部楼层
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
再见西城 该用户已被删除
发表于 2015-1-29 17:05:48 | 显示全部楼层
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
柔情似水 该用户已被删除
发表于 2015-1-29 23:10:09 | 显示全部楼层
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
admin 该用户已被删除
发表于 2015-2-6 06:21:50 | 显示全部楼层
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
发表于 2015-2-15 14:13:51 | 显示全部楼层
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
第二个灵魂 该用户已被删除
发表于 2015-2-20 01:54:44 | 显示全部楼层
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
小女巫 该用户已被删除
发表于 2015-2-20 11:12:11 | 显示全部楼层
是一种突破用户端机器环境和CPU
飘飘悠悠 该用户已被删除
发表于 2015-3-6 16:59:44 | 显示全部楼层
Java 编程语言的风格十分接近C、C++语言。
谁可相欹 该用户已被删除
发表于 2015-3-11 11:17:15 | 显示全部楼层
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
海妖 该用户已被删除
发表于 2015-3-12 14:45:35 | 显示全部楼层
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
灵魂腐蚀 该用户已被删除
发表于 2015-3-13 00:58:15 | 显示全部楼层
Java 编程语言的风格十分接近C、C++语言。
深爱那片海 该用户已被删除
发表于 2015-3-20 07:37:09 | 显示全部楼层
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
精灵巫婆 该用户已被删除
发表于 2015-4-4 07:42:12 | 显示全部楼层
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
乐观 该用户已被删除
发表于 2015-4-24 12:50:57 | 显示全部楼层
是一种使网页(Web Page)产生生动活泼画面的语言
兰色精灵 该用户已被删除
发表于 2015-5-3 15:31:34 | 显示全部楼层
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
简单生活 该用户已被删除
发表于 2015-6-26 18:20:27 | 显示全部楼层
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
若天明 该用户已被删除
发表于 2015-7-10 06:33:51 | 显示全部楼层
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
不帅 该用户已被删除
发表于 2015-7-10 11:28:16 | 显示全部楼层
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-3-28 20:24

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表