一直都知道回调函数这个概念,但是一直都懵懵懂懂的,直到前段时间才算真的明白这个东西。
所谓回调,就是对象A调用另一对象B中的某个方法b,然后B又在某个时候反过来调用A中的某个函数c,对于B来说,这个c便叫做回调函数。
用一个比较形象的例子:
你饿了,想吃饭,就一会去问你妈一声”开饭没有啊?”
这就是正常函数调用.
但是今天你妈包饺子,花的时间比较长,你跑啊跑啊,就烦了.于是你给你妈说,我先出去玩会,开饭的时候打我手机.
等过了一阵,你妈给你打电话说”开饭啦,回来吃饭吧!”
其中,你告诉你妈打手机找你,就是你把回调函数句柄保存到你妈的动作.你妈打电话叫你,就是个回调过程.
回调函数:
Children children = null;
children = new Children();
children.seteatlistenner(new FinishCookingListenner() {
//回调函数
@Override
public void finishcooking() {
System.out.println("开饭啦!!!!!");
}
});
设置吃饭的监听器:
public interface FinishCookingListenner {
void finishcooking();
}
然后是我们的Mom类
public class Mom {
private FinishCookingListenner listenner;
public void seteatlistenner(FinishCookingListenner listenner){
this.listenner = listenner;
}
public void wantEat(){
//饭做好啦,叫吃饭
listenner.finishcooking();
}
}
接下来Children类:
public class Children {
public static void main(String args[]){
Mom mom = null;
mom = new Mom();
//注册监听器
mom.seteatlistenner(new FinishCookingListenner() {
@Override
public void finishcooking() {
System.out.println("开饭啦");
}
});
//告诉mom,想吃饭啦
mom.wantEat();
}
}
这就是我的