Java回调理解 (step by step)
2014-12-23 10:10
274 查看
在网上搜索了许多篇关于java回调函数的文章,自己也来试了一下写了这篇博客,可能有些地方理解不到位,烦请各位大大指正。
在计算机程序设计中,回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。
在Java里面,我们使用接口来实现回调。
模拟一个场景:一个Girl给她男朋友Man打电话,然后Man给她回复:
首先定义一个接口:
Girl:
在计算机程序设计中,回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。
在Java里面,我们使用接口来实现回调。
模拟一个场景:一个Girl给她男朋友Man打电话,然后Man给她回复:
首先定义一个接口:
package mine.callback2; public interface CallInterface { void execute(); }Girl:
package mine.callback2; public class Girl { public CallInterface ci; //保存一个接口引用 public void setCallFun(CallInterface ci){ this.ci=ci; } public void call(){ ci.execute(); //回调实现CallInterface接口Man中的方法 } }Man:
package mine.callback2; public class Man implements CallInterface { @Override public void execute() { System.out.println("好的,女王大人"); } public static void main(String[] args) { Girl girl = new Girl(); girl.setCallFun(new Man()); girl.call(); } }接口不变,实现实现以上相同的功能:
Girl:
package mine.callback1; public class Girl { public CallInterface ci; public void CallFun(CallInterface ci){ System.out.println("陪我去逛街,好么?"); ci.execute(); //进行回调操作 } }Man:
package mine.callback1; public class Man { public static void answerA() { System.out.println("好的,女王大人!"); } public static void answerB(){ System.out.println("对不起,我这儿还有任务没完成,以后有时间陪你噢."); } public static void main(String[] args) { Girl girl = new Girl(); girl.CallFun(new CallInterface() { @Override public void execute() { //这里可以调用更多的回答 answerB(); } }); } }如果思路不够清晰可以看下面这篇文章:http://kidult.iteye.com/blog/148982
相关文章推荐
- Java回调理解 (step by step)
- Step by Step - Turning Ruby Files into Java Classes(中英文对照版)
- 【Azure Services Platform Step by Step-第7篇】别把Windows Azure当虚拟主机使——理解Windows Azure服务架构
- Java step by step(3): Annotation
- Step By Step(Java 常用对象篇<一>)
- Step By Step(Java XML篇)
- Step By Step(Java 输入输出篇)
- 搭建Java开发环境(Step by step)
- Java step by step (1) : simple Spring IoC container
- Step-by-Step搭建Linux下的java开发环境
- Step By Step(Java 反射篇)
- 如何理解JAVA 参数传递总是值传递(pass-by-value )
- 关于java的接口回调和向上转型的理解
- NHibernate Step By Step(3)-数据操作回调方法(拦截器)
- Java step by step(2): Hibernate and Oracle Sequence
- 理解java中的回调方法
- NHibernate Step By Step(3)-数据操作回调方法(拦截器)
- Blaze和Java通信例子step by step
- Step By Step(Java 线程篇)
- 《Microsoft SQL Server 2008 MDX Step by Step》学习笔记二:理解元数组(Tuples)