Java关于回调的易理解解读

16 篇文章 0 订阅
你好,我写了个很简单的代码,你一看就明白了

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是两个独立执行的线程,提高程序效率。










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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值