你好,我写了个很简单的代码,你一看就明白了 public class A { int value = 1001; public A() {// A的构造函数,执行B的exec()方法,里面又带有对A的getValue()方法调用,这个就叫做回调 B b = new B(this); b.exec(); } public int getValue() { return value; } public static void main(String[] args) { new A();//构造函数里已经发生了回调,所以不需要更多的代码 } } class B { private A a; public B(A a) { this.a = a; } public void exec() { System.out.println(a.getValue());// 这里调用了a的getValue()方法 }}
————————————————————————————————————————————————————————————————
所谓回调,就是客户程序C调用服务程序S中的某个方法a,然后S又在某个时候反过来调用C中的某个方法b,对于C来说,这个b便叫做回调函数。
————————————————————————————————————————————————————————————————
比如你写了两个类A和B,并且各生成一个对应的实例a 和b ,在a 中有一个方法fa( 此方法只负责生成两个随机数)要调用b中的一个方法fb(此方法对两个数进行求各) 来进行求和,fb求得结果后要调用a的另一个方法ffa(此方法用于显示求得的结果),这时ffa就叫作回调函数,(反回来调用一下的意思) 为什么要这么麻烦呢,如果fb直接返回结果不好吗,试想如果fb执行时间较长,那么fa就会一直等结果而导致fa不往下执行了,此时如果用回调这个功能实现,由于 回调函数一般是由系统异步调用的,方法fa调用fb后就不用等而直接往下执行,比如可以再生成两随机数给fb,fb会依次得到结果后通过回调机制来调用ffa显示出来,其实就是为实现生成随机数和计算随机数的异步执行。好象fa和fb是两个独立执行的线程,提高程序效率。
Java关于回调的易理解解读
最新推荐文章于 2024-08-22 09:42:02 发布