您的位置:首页 > 编程语言 > Java开发

一个例子理解Java回调机制

2017-02-26 22:35 190 查看

Java回调机制

用一个简单的例子来理解Java的回调机制

小明做数学作业时,要计算的数字很大,因此打算用计算器来帮助计算,然

后根据计算器的运算结果填空。这里把填空操作抽象成方法,写到接口DoCalculate里,然后计算器和小明分别封装成两个类,代码如下:

FillBlank 接口

/**
* 计算接口
*/
public interface DoCalculate {
public void fillBlank(int result);
}


计算器类

/**
* 计算器类
*/
public class Calculator {

//计算方法,计算完成后调用fillBlank方法并传计算结果
public void calculate(int a, int b, DoCalculate customer) {
customer.fillBlank(a + b);
}
}


小明(学生)类

/**
* 学生类
*/
public class Student implements DoCalculate {

//持有计算器
private Calculator cal;

public Student() {
cal = new Calculator();
}

@Override
public void fillBlank(int result) {
System.out.println("小明使用计算器计算结果为" + result);
}

public void useCalculator(int a, int b) {
cal.calculate(a, b, this);
}
}


测试类

/**
* 测试类
*/
public class Test {
public static void main(String[] args) {
Student xiaoming = new Student();
xiaoming.useCalculator(1, 2);
}
}


整体流程为:小明拥有计算器,当想用计算器算题时,调用useCalculator方法,传入参数,然后useCalculator方法调用计算器的calculate,传的参数包括要计算的数和小明自身,计算器计算结果以后,通知小明,小明完成填空操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: