分手快乐 发表于 2015-1-18 11:34:35

了解下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()办法会猎取每一个顶级窗口的句柄,猎取题目笔墨,并将其打印到把持台窗口。
importcom.ms.dll.*;
importcom.ms.win32.*;

classEnumWindowsProcextendsCallback{
publicbooleancallback(inthwnd,intlparam){
StringBuffertext=newStringBuffer(50);
User32.GetWindowText(
hwnd,text,text.capacity()+1);
if(text.length()!=0)
System.out.println(text);
returntrue;//tocontinueenumeration.
}
}

publicclassShowCallback{
publicstaticvoidmain(Stringargs[])
throwsInterruptedException{
booleanok=User32.EnumWindows(
newEnumWindowsProc(),0);
if(!ok)
System.err.println("EnumWindowsfailed.");
Thread.currentThread().sleep(3000);
}
}对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好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
页: [1] 2
查看完整版本: 了解下JAVA的编写回调函数