zoukankan      html  css  js  c++  java
  • Java回调接口的理解

                        

      本文主要是讲述Java序列化与static,多线程并发处理,更多Java技术知识,请登陆疯狂软件教育官网。

      现在有两个类,一个是A,一个是B,回调就是A去调用B中的某个方法,然后B又回调A中的某个方法,这个方法就是回调方法,回调的机制是与接口分不开的。也就是A类实现一个接口,并实现接口的方法,B类得到这个回调函数的引用,然后去调用这个对调函数。好像比较绕,举个通俗的例子吧。

      现在有一个老师(类A)和一个学生(类B),老师告诉这个学生说,把你的作业交到办公室,学生说我的作业还没写完,等写完了再交过来,老师说好,于是告诉了学生他的办公室在哪,然后老师和学生都去忙自己的事情去了。(这个例子里也有异步,待会的代码中将不涉及异步),过了会,学生将作业交到了老师指定的办公室中。

      下面看代码:

      //回调接口 相当于老师的办公室地址

      public interface CallBack {

      public void callback(String homework);

      }

      //老师 作为上层应用身份出现

      public class Teacher implements CallBack{

      @Override

      public void callback(String homework) {

      System.out.println("老师,这是我的作业..."+homework);

      }

      }

      //学生 作为下层身份出现

      public class Student {

      //相当于老师的办公室

      private CallBack callBack = null;

      public void setCallBack(CallBack callBack) {

      this.callBack = callBack;

      }

      public void doHomework() {

      System.out.println("写作业...(半个小时后)作业写完了");

      //告诉老师,作业写完了 并且交到了办公室

      callBack.callback("数学卷子一张");

      }

      }

      public class Test {

      public static void main(String[] args) {

      Teacher t = new Teacher();

      Student s = new Student();

      //传入回调对象 老师

      s.setCallBack(t);

      s.doHomework();

      }

      }

      上面就是回调的一个例子。CallBack是一个回调接口,就是办公室地址,老师是处于上层的,它的学生是不知道也不了解的,于是老师要想让学生将作业交到办公室,也就得告诉学生办公室的地址,所以老师这个类必须去实现这个回调接口。在老师的这个类里,也可以去调用学生类的某个方法,当然在这个例子中,并没有去调用学生类中的方法,而仅仅是实现了回调函数,告诉学生他的作业收到了。在学生类中,首先得到回调接口的引用,也就是办公室的地址,然后学生类去调用这个回调函数,把作业交到办公室。

      疯狂软件Java培训紧跟最新的Java潮流技术,国内首家讲解Java 8新特征,根据企业工作中需要的开发技术,让学员学习的课程是企业最需要的实用技术,而且也保障学员能把这些技能点学会、学好,并且疯狂软件教育的课程实时更新,在信息技术快速发展的情况下,可以保证学员学到更新更主流的技术。师资雄厚,教师均拥有8年以上的项目实践经验,疯狂软件Java课程是理论与实践相结合,这样保障了学员很好的掌握理论知识同时,也能根据理论的指导做好实际的工作。为了培养学生的实践能力,设置了很多项目实战课程,在这些课程中,学生可以体验真正的项目实战过程,从而更深刻地掌握知识。如需了解更多,请咨询QQ:544627560抢座热线:020-28309358 咨询QQ:707552864可登陆疯狂软件教育官网查询。

  • 相关阅读:
    ibatis项目启动报错The string "--" is not permitted within comments【原】
    excel vlookup简易样例【原】
    用itext合并多个pdf文件【转】【补】
    springboot 自定义starter之AutoConfiguration【原】
    springboot 启动配置原理【转】【补】
    springboot 数据访问【转】【补】
    springboot thymeleaf【转】【补】
    包名的命名方式
    servlet中doget和dopost方法的区别
    DBUtils使用详细示例
  • 原文地址:https://www.cnblogs.com/gojava/p/4381664.html
Copyright © 2011-2022 走看看