Java学习之回调机制
来源:互联网 发布:龙珠孙悟空知乎 编辑:程序博客网 时间:2024/06/05 10:04
Java学习之回调机制
目录
- Java学习之回调机制
- 目录
- 前言
- 一回调机制简介
- 二举例说明
- 三使用具体代码进行实现说明
- 四总结
前言
在进行java学习时,听到很多大牛说,java有很多机制,例如:反射机制、回调机制等等。
先开始,也是晕的没边。后来,查找很多资料后,了解了一些,在这里记录一下,java的回调机制吧。
一、回调机制简介
简而言之,就是,A类调用B类的E方法,然后,因为B类的E方法会调用A类的D方法。所以,称A类的D方法为回调发方法。
而在实现时,一般要满足如下几个条件:
首先会存在三个Object:A 类、B类、接口C。
- A类实现了接口C中的方法D。
- A类有了B类的引用。
- B类中存在一个输入参数的数据类类型为接口C的方法E。
- 且,在B类中对E方法的定义中会存在对接口C的方法D的调用。
- 因为,A类中存在B类的引用。所以, A类的对象 可以调用 B类方法E ,并且传入的参数为A.this。
- 又因为,D是A实现了的接口C的方法。
- 所以,整个过程就出现了,A调用了B的E方法,而B的E方法又回调了A的D方法。
二、举例说明
举个栗子说就是:
上级A 这里有一堆需要处理的数据和处理数据时遵循的规则,而手下有B。
B在处理这些数据时,需要遵循处理这些数据的规则,所以,
会看这些数据的处理规则手册,而这些处理规则手册是由上级A依据一套相当完善的规则
制度编写的。B处理完数据后,A会让B将结果提交。
如果这个例子与上文中对回调机制的实例描述对比的话,那么:有如下对应关系:
回调过程: 首先,A让B处理数据,就调用了B的出来数据方法,然后,在B进行数据处理时,因为要依照A制定的规范进行处理,所以就在B使用处理舒服方法时,调用了A的规范数据方法。
三、使用具体代码进行实现说明:
说了那么多理论的,下面来点实际代码,刺激一下诸位的‘味蕾’。
- 首先是定义一个Interface: C
public interface C{ public String formData(String data);}
- 定义被回调者:A
public class A implements C{ private B b = null; private String data = "Lots Of Data"; public A(B b){ this.b = b; } @Override public String formData(String data){ //System.out.println("hello:"+data); return "hello:"+data; } public void setData(String data){ this.data = data; } public String getData(){ return this.data; } public void setB(B b){ this.b = b; } public B getB(){ return this.b; }}
- 定义被调用者:B
public class B{ public String BtoformData(C c){ String data = c.formData(((A)c).getData()); return data; }}
程序测试
public class Test{public static void main(String[] args){ A a = new A(new B()); String formedData = a.getG().BtoformData(a.this);}}
运行 Test之后,会打印
hello:Lots Of Data
,则表示正确。
四、总结
在使用回调机制时,用一句话总结就是,
一个实现了某个接口的类在调用另一个以该类为参的方法时,被调用了实现了的接口方法。而这个方法被成为毁掉方法。
这只是我对回调机制的理解,如果有说的不对的地方,欢迎大家指出讨论。
同时欢迎大家转载,转载时请注明出处谢谢!
snowlive
http://blog.csdn.net/snowlive
- Java学习之 回调机制
- Java学习之回调机制
- java之模块学习-接口回调机制详解
- java回调机制学习
- java学习之反射机制
- Java学习之-----反射机制
- java学习之反射机制
- Java学习之反射机制
- Java学习之反射机制
- Java学习之反射机制
- Java学习之二-Java反射机制
- Java学习之二-Java反射机制
- Java学习之二-Java反射机制
- Java学习之二-Java反射机制
- Android 回调机制学习之 Callback
- Java的回调机制--学习笔记
- anroid 学习之java回调机制与自定义接口回调方法的使用
- Java 消息机制之回调详解
- [学习笔记07]JS中的继承
- todo
- 【IMWeb训练营作业】vue-Todolist
- 五层协议及每层主要功能
- 程序性知识才是聪明人的核心武器
- Java学习之回调机制
- 单列集合
- 快速排序算法的分析与实现
- 使用消息队列需要注意的几个关键问题
- Linux学习<二> 第三单元
- 【Java并发编程】基本概念
- keil设置界面右边距
- STM32学习笔记之ADC
- 腾讯云服务器安装mysql遇到安装mysqlworkbench失败