回调函数详解
2017-03-01 18:13
197 查看
回调函数这个名字取十分形象,回调,回过头再调,处理完在调用
下面以几个例子:
第一层抽象,
(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代码:
胖虎类:
大熊类
下面以几个例子:
第一层抽象,
(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); } }
相关文章推荐
- Java的回调函数
- 理解java回调机制的绝对经典的例子
- Java的代理模式和回调函数
- java回调函数
- Java中的回调函数学习
- 一个经典例子让你彻彻底底理解java回调机制
- Thinking in Java之接口回调改版
- JAVA回调函数的理解
- java 回调的同步回调和异步回调
- Java—回调—CallBack
- Java回调函数的理解
- java回调函数
- Android中接口的回调,Activity或Fragment与普通类之间的互相调用
- C# 调用C++的导出函数,含有回掉函数
- Java 回调简单Demo
- 回调函数
- Java回调机制解析
- Android接口回调总结,以及运用到弹窗PopWindow的Demo实现
- Java回调函数的理解
- 安卓回调详解--CallBack