以下是我对java回调函数的理解,希望对各位有帮助。

  简而言之,假设有两个类A与B,还有一个回调接口C(有一个c方法)。其中A类持有一个B类对象作为属性和拥有一个a方法,并实现了接口C,所以A类中就有a、c两个方法。B类中就仅有b方法。当外部程序调用A对象中的方法a时,a就会调用B类对象的b方法,b方法最后又调回A类中的c方法,此过程就是一个回调。

  上面的解析有点抽象,下面我就用例子演示一下。

  首先定义一个接口(即上面解析中的C角色):

  Java代码

  package com.peng.callback;

  public interface OnEndPlay {

  public void endPlay(String program);//c方法

  }

  然后定义一个MediaPlayerService(即A角色)对象实现OnEndPlay(C角色):

  Java代码

  package com.peng.callback;

  public class MediaPlayerService implements OnEndPlay{

  private MediaPlayer player=new MediaPlayer();

  public void doPlay(String program)//a方法

  {

  player.play(this,program);

  }

  @Override

  public void endPlay(String program) //c方法

  {

  System.out.println(program+":节目播放结束!");

  }

  }

  在定义一个MediaPlayer (B角色):

  Java代码 收藏代码

  package com.peng.callback;

  public class MediaPlayer {

  public void play(OnEndPlay callback,String program)//b方法

  {

  int count=0;

  while (count<10)

  {

  System.out.println(program+":正在播放。。。。");

  count++;

  try

  {

  Thread.sleep(1000);

  } catch (InterruptedException e)

  {

  e.printStackTrace();

  }

  }

  callback.endPlay(program);

  }

  }

  最后用一个测视类测试:

  Java代码

  package com.peng.callback;

  public class Test {

  public static void main(String[] args)

  {

  final MediaPlayerService playService=new MediaPlayerService();

  final String program="湖南卫视";

  new Thread(new Runnable() {

  @Override

  public void run()

  {

  playService.doPlay(program);

  }

  }).start();

  }

  }

  运行结果为:

  湖南卫视:正在播放。。。。

  湖南卫视:正在播放。。。。

  湖南卫视:正在播放。。。。

  湖南卫视:正在播放。。。。

  湖南卫视:正在播放。。。。

  湖南卫视:正在播放。。。。

  湖南卫视:正在播放。。。。

  湖南卫视:正在播放。。。。

  湖南卫视:正在播放。。。。

  湖南卫视:正在播放。。。。

  湖南卫视:节目播放结束!

  疯狂软件学习中心是一所Java人才的专业机构,它最核心的价值在于能让应届大学毕业生与企业无缝对接,课程设计与企业需求高度结合,使其在进入企业后能立即上手。

  学真正Java技术,当然选疯狂软件Java培训机构,打造国内高级Java人才

  疯狂软件Java培训优势

  1. Java是世界第一大编程语言,市场占有率达20%。

  2.广州最专业Java培训机构,多年教学经验。

  3.学员技术牛就业率最好,就业薪资都在5000以上。

  4.部分老师还是Java技术系列书籍的作者,由这样的Java书籍原创作者讲课可想而知课程条理清晰、讲解清楚,知识面广、深度足够!

  5.疯狂软件Java培训课程以项目实战带动教学,上课打破传统课堂模式,以实训项目贯穿教学,带领学生一起做企业真实项目。

  疯狂Java培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。

转载于:https://www.cnblogs.com/gojava/p/3559136.html

Java 回调函数的理解相关推荐

  1. Java回调函数的理解

    所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数.例如Win32下的窗口过程函数就是一个典型的回调函数.一般说来,C ...

  2. Java回调函数理解和应用

    #Java回调函数理解和应用 所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的. 在未理解之前,我也是一脸懵逼,等我理 ...

  3. Java 回调函数详解及使用

    Java 回调函数详解 前言: C语言中回调函数解释: 回调函数(Callback Function)是怎样一种函数呢? 函数是用来被调用的,我们调用函数的方法有两种: 直接调用:在函数A的函数体里通 ...

  4. java回调函数的生命_Java车票,车站,生命周期,龟兔赛跑,同步锁,礼让,守护线程,挖金矿【诗书画唱】...

    个人理解:加同步锁等的时候,就可以让线程"按顺序排队",一个一个地抢CPU,一个抢完对应的每次有的CPU了,另一个才抢对应的每次有的CPU,解决"并发"问题等. ...

  5. js回调函数的理解(轉)

    js回调函数(callback)理解Mark!讲之前说一句function say(){alert(,,,,,,,,)}var say=function (){alert(,,,,,,,)}var s ...

  6. [实战]java回调函数

    下面使用java回调函数来实现一个测试函数运行时间的工具类: 如果我们要测试一个类的方法的执行时间,通常我们会这样做: java 代码 public   class  TestObject { /** ...

  7. java反射回调函数_用J2V8注册Java回调函数

    J2V8是一套针对谷歌的V8 JavaScript引擎的Java绑定.J2V8的开发为Android平台带来了高效的Javascript的执行环境,taris.js 就是基于J2V8开发的.J2V8同 ...

  8. 回调函数举例ajax,通过回调函数的理解来进一步理解ajax及其注意的用法

    一,再一次理解回调函数 (function($){ $.fn.shadow = function(opts){ //定义的默认的参数 var defaults = { copies: 5, opaci ...

  9. Java 回调函数(传统方法和lambda方法)-一个例子秒懂

    原文地址为: Java 回调函数(传统方法和lambda方法)-一个例子秒懂 背景: 想写一个工具类 Tool.java ,其中方法 public void readOneLine() 负责一行一行地 ...

最新文章

  1. 某高校教授要求:博士生发表论文,必须把他列为第一作者
  2. 数据结构源码笔记(C语言):二叉平衡树的相关操作算法
  3. 使用var,Lombok和Fluxtion轻松处理事件
  4. Java 8 Friday:Java 8将彻底改变数据库访问
  5. 权限验证框架Shiro
  6. 愿你的指下有代码,眼里有星辰
  7. python鼠标移动事件_给turtle屏幕增加鼠标移动事件核心代码
  8. 3.live555源码分析----延时队列
  9. 苹果也开始打价格战了
  10. 北京君正:君子爱财,取之补助
  11. python语法(二)——截取字符串的方法详解
  12. 前端会有什么新的变化
  13. Specification使用
  14. 五大免费采集器哪个好,火车头,海纳,ET,三人行,狂人采集
  15. ArcGIS 10安装方法(对比流行的2种安装方法)||迅雷电驴下载地址
  16. “辶”“廴”偏旁的字五笔拆字
  17. windows中truffle unbox react失败总结
  18. LintCode 644. 镜像数字 JavaScript算法
  19. 限免|iOS长截图工具 滚动截屏
  20. maven 排除配置文件打包_maven 打包排除配置文件

热门文章

  1. SQL小技巧系列 --- 行转列合并
  2. Windows server 2003 关于DNS的配置以及区域复制测试
  3. 体验.net2.0的优雅(4):Provider、策略、控制反转和依赖注入
  4. 信息系统项目管理师复习第1小时
  5. 【算法专题】积性函数
  6. 我之我见:samba共享
  7. keta-custom DWZ validationEng IE 下表单重复提交BUG原因及修复方法
  8. 在代码中向ReportViewer动态添加数据源
  9. 【leetcode 968. 监控二叉树】解题报告
  10. Redis的安装部署