java回调机制

什么是回调?,简单来说就是在“A类调用B类中的c方法,B类调用A类中的d方法”这个d方法就是回调方法。

回调机制的几个步骤

  1. 声明一个CallBack接口
  2. 类A实现CallBack,在包含B类的引用,并把这个引用作为类A方法中的参数
  3. 在类A中调用B类中的c方法
  4. 在B类中调用A类中的f方法,该f方法就是回调方法

那就按步骤一步一步来吧。。

1.创建CallBack.java

/**
 * 这是个回调接口
 * @author Administrator
 *
 */
public interface CallBack {

  void solve(String result);

}

2.创建Student.java并实现CallBack接口

public class Student implements CallBack {
       //这就是步骤二
    private Teacher teacher;//引用Teacher

    public Student(Teacher teacher) {
        this.teacher=teacher;//创建student并初始化teacher
    }

/**
 * 学生问老师的问题
 * @param question
 */

    public void askQuestion(final String question){

        new Thread(new Runnable(){
            @Override
            public void run() {
                teacher.handlerQuestion(Student.this, question);//调用teacher中的方法----这就是步骤3

            }               
        }).start(); 
    }

    @Override
    public void solve(String result) {
        System.out.println("学生问老师的题目的结果为:"+result);

    }

}

3.创建Teacher.java

public class Teacher {

    /**
     * 老师解决解决问题的的答案
     * @param call
     * @param question
     */
    public void handlerQuestion(CallBack call,String question){
        System.out.println("学生问老师的题目为"+question);
        String result="2";
        call.solve(result); //这个就是回调的方法,调用了学生中的solve()方法---这就是步骤4

    }

}

4.Test.java测试类

public class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Teacher teacher=new Teacher();
        Student student=new Student(teacher);
        student.askQuestion("1+1");
    }

}

5.运行结果:

学生问老师的题目为1+1
学生问老师的题目的结果为:2

6.总结:java的回调机制我的理解就是这样的,“就是A类调用B类中的c方法,B类调用A类中f的方法,该f方法就是回调”有不对的地方请指正!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值