黑马程序员技术交流社区

标题: 什么是回调函数 [打印本页]

作者: 黑马-王建雨    时间: 2012-10-23 23:05
标题: 什么是回调函数
求详解?附例子。谢谢。
作者: 黑马-王建雨    时间: 2012-10-23 23:08
{:soso_e185:}
作者: 黑马-王建雨    时间: 2012-10-23 23:09
求帮助



作者: 李琼    时间: 2012-10-23 23:10
本帖最后由 liqiong0327 于 2012-10-23 23:12 编辑

程序在调用一个函数时,将自己的函数的地址作为参数传递给程序调用的函数时(那么这个自己的函数称回调函数)
java一般采用接口回调实现:把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。

1、创建一个回调接口:
  1. //回调接口
  2.   public interface ICallBack
  3. {
  4. void run();
  5. }
复制代码
2、创建回调接口的实现类:
  1. class CallBackClass implements ICallBack
  2. {public void run()
  3. {
  4.   //输出当前时间
  5.    System.out.println(System.currentTimeMillis() );
  6. }
  7. }
复制代码
3、创建控制类
  1. class Controller
  2. {
  3.      public ICallBack CallBackObject = null;// 引用回调对象
  4.      Scanner input = new Scanner(System.in); //读取命令行输入
  5.      public Controller(ICallBack obj)
  6.      {
  7.          this.CallBackObject = obj;
  8.      }
  9.      public void Begin()
  10.      {
  11.          while(input.next() != null)//判断是否有输入
  12.          {
  13.             CallBackObject.run();
  14.           }
  15.      }
  16. }
复制代码
4.main
  1. class Program
  2. {
  3.      static void Main(string[] args)
  4.      {
  5.          //创建控制器对象,将提供给它的回调对象传入
  6.          Controller obj = new Controller(new CallBackClass());
  7.          //启动控制器对象运行
  8.          obj.Begin();
  9.      }
  10. }
复制代码
码字不容易啊
作者: 黑马-王建雨    时间: 2012-10-23 23:16
liqiong0327 发表于 2012-10-23 23:10
程序在调用一个函数时,将自己的函数的地址作为参数传递给程序调用的函数时(那么这个自己的函数称回调函数 ...

给个通俗的解释吧  谢啦  哥们
作者: 李琼    时间: 2012-10-23 23:33
黑马-王建雨 发表于 2012-10-23 23:16
给个通俗的解释吧  谢啦  哥们

额。。。已经够通俗了啊,你再看代码的实现。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2