A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马-王建雨 中级黑马   /  2012-10-23 23:05  /  1684 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

求详解?附例子。谢谢。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

5 个回复

倒序浏览
{:soso_e185:}
回复 使用道具 举报
求帮助


回复 使用道具 举报
本帖最后由 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. }
复制代码
码字不容易啊

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
liqiong0327 发表于 2012-10-23 23:10
程序在调用一个函数时,将自己的函数的地址作为参数传递给程序调用的函数时(那么这个自己的函数称回调函数 ...

给个通俗的解释吧  谢啦  哥们
回复 使用道具 举报
黑马-王建雨 发表于 2012-10-23 23:16
给个通俗的解释吧  谢啦  哥们

额。。。已经够通俗了啊,你再看代码的实现。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马