回调函数详解

回调函数这个名字取十分形象,回调,回过头再调,处理完在调用

下面以几个例子:

第一层抽象,

(1). A类有个B类的对象(可以对B类进行调用)
(2). B类有个计算 今天温度的方法C(object)
(3). A有个打印字符串的方法 D(String dataStr)
(4). 此时 A类调用B类C(object)方法,object传入A.this(A类的对象),计算是需要时间的,虽然很快,B类计算完了会通过传入的A勒对象调用A类的D(String dataStr)进行打印

这个例子中,B对A进行了回调,回调方法就是D(String dataStr)
其中A.this传给C()方法时,A.this可以理解为回调地址(为回调打基础),回调地址可以没有

还不明白?看下面第二层抽象

(1)胖虎没有温度计,但是他想直到今天的温度,同时他知道大熊有温度计
(2)胖虎去找大熊,问他今天多少度,大熊去拿温度计测量温度
(3)胖虎有急事给大熊说,测好了来我家找我
(4)大熊测好了,告诉胖虎今天20度

这个例子中,大熊最后去告诉胖虎今天20度,这就是大熊对胖虎的回调
胖虎说的来我家找我可以理解为回调地址(为回调打基础),可以没有

很好理解吧还不明白,就@我吧。( ▼-▼ )

ok,趁热打铁,看段Java代码:

胖虎类:


package 回调测试;
/**
 * 胖虎
 */
public class PangHu {

    public PangHu() {
        // TODO Auto-generated constructor stub
    }

    //大熊想知道今天多少度
    private void C(){
        DaXiong daXiong = new DaXiong();
        daXiong.getTemperature(this);
    }

    //打印函数
    public void out(String str){
        System.out.println(str);
    }
}

大熊类

package 回调测试;

/**
 *  大熊
 */
public class DaXiong {

    //获取今天温度的方法
    public void getTemperature(Object object){
        String temperature = "20度";

        PangHu daXiong = (PangHu) object;
        //回调胖虎
        daXiong.out(temperature);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鼠晓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值