接口回调
2018-09-18 06:37:24来源:博客园 阅读 ()
前几天学了接口回调,现在总结一下接口回调是什么原理:假设我们现在需要实现一个通知的功能,需求是A在执行循环,当循环到5的时候, 通知B。以前我们是直接把B类的实例传到A对象中,A类代码如下:
package com.itheima.demo; public class A { // 我是A类,我要接口回调 void printlt(B b) { for (int i = 1; i <=10; i++) { System.out.println("1988年的第几"+i+"次"); if (i==5) { b.println2(); } } } }
B类代码:
package com.itheima.demo; public class B { public void println2() { // TODO Auto-generated method stub System.out.println("2018年到了5"); } }
主方法:
package com.itheima.demo; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub A a=new A(); B b= new B(); a.printlt(b); //调用A的打印方法 } }
这样就会有一个缺陷。万一这个A类是早在1988年写好了的,1988年的程序员怎么知道你要传什么对象,要实现什么功能呢?因此出现了接口回调。
我们先定义一个接口:
package com.itheima.demo; public interface ListenerB { void println2(); //定义一个打印的方法 }
使用接口回调的A类代码:
package com.itheima.demo; public class A { // 我是A类,我要接口回调 public void printlt(ListenerB B) { //这里就变成了接口的实例 for (int i = 1; i <=10; i++) { System.out.println("1988年的第几"+i+"次"); if (i==5) { B.println2(); //这里是接口定义好了的方法,B类只要实现接口的方法就可以了 } } } }
使用接口回调的B类代码:
package com.itheima.demo; public class B implements ListenerB { //我们只要实现这个接口就可以了 @Override public void println2() { // TODO Auto-generated method stub System.out.println("2018年到了5"); } }
主方法:
package com.itheima.demo; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub A a=new A(); ListenerB b=new B(); a.printlt(b); } }
这样我们就写好了一个简单的接口回调。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Spring系列.ApplicationContext接口 2020-06-11
- 为什么阿里巴巴Java开发手册中强制要求接口返回值不允许使用 2020-06-06
- Java生鲜电商平台-生鲜电商接口幂等性原理与防重复提交方案( 2020-06-05
- Java连载120-反射机制获取构造方法和父类、父接口 2020-06-05
- Java Spring注入一个接口的多个实现类在map里如何实现?案 2020-06-04
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash