开始根本不是太懂,看了一篇大牛的博客,感觉会了那么一点,我把他改得在通俗点吧,万一以后自己还要看看呢~~

直接贴代码吧 ,比较好懂!


菜鸟类

package com.feng.test;import com.feng.test.Daniu.CallbackInter;public class Cainiao {    /**     * @param args     */    public static void main(String[] args) {        // TODO 自动生成的方法存根        //世界多出一个彩笔        Cainiao cainiao = new Cainiao();        //菜鸟有问题了,不懂就问        cainiao.hasQuestion();    }    //这里有个问题 按照正常人类逻辑 是先要到电话 在xxx 在得到大牛的答案,    //而这里是先实现得到大牛的答案 在来要到大牛的号码提出问题    //即:如果我们把callbackInter的接口函数实现放在setcallbackInter()    //后面 是会报错    //求大神指导下    public void hasQuestion(){        //彩笔找到了一个大牛        Daniu daniu = new Daniu();        //告知大牛拿到了答案 (实现大牛接口的函数)        CallbackInter callbackInter = new CallbackInter() {            @Override            public void callback(String answer) {                // TODO 自动生成的方法存根                System.out.println("彩笔1号:嗯 我收到答案了,答案是 /"+answer+"/");            }        };        //要到了大牛的电话打过去提出了自己的问题        daniu.setCallbackInter("彩笔1号", "21+23等于多少?", callbackInter);        //让大牛思考会儿        daniu.Think();    }}

大牛类

package com.feng.test;public class Daniu {    //抽线回调接口    private String name;    public interface CallbackInter{        void callback(String answer);    }    private CallbackInter callbackInter;    public CallbackInter getCallbackInter() {        return callbackInter;    }    //大牛:哪个彩笔要了我的号码,我就回答哪个彩笔的问题(提供注册函数)    public void setCallbackInter(String name,String question,CallbackInter callbackInter) {        System.out.println("大牛:电话响了,我收到了 /"+name+"/的问题,问题是 /"+question+"/");        this.name = name;        this.callbackInter = callbackInter;    }    //大牛脑子在思考并得出答案    public void Think(){        for(int i = 0;i<100;i++){            if(i ==0){                System.out.println("大牛正在思考问题...");            }        }        String answer = "54";        System.out.println("大牛:我想到答案了, 打电话回去给 /"+name+"/告诉他答案");        //大牛思考完后通知彩笔(彩笔实现接口函数)        callbackInter.callback(answer);    }}

最后 运行截图:

更多相关文章

  1. android 按键声音
  2. android 数据库 sqlite数据类型(时间 日期 double等)
  3. Android(安卓)Handler消息处理顺序分析
  4. 谈中型项目下的编码技巧二
  5. android 屏幕切换
  6. android输入法02:openwnn源码解析02—Keyboard和KeyboardView
  7. android linphone中opengl显示的实现
  8. android锁屏创建流程
  9. android:dkplayer中ijkplayer延迟长的问题,达到秒开的结果

随机推荐

  1. 9.4成员变量和局部变量的区别
  2. 9.3使用变量的规则
  3. 如何学习一门新的编程语言?
  4. 如何一步一步构建推荐系统(上)
  5. 如何一步一步构建推荐引擎(下)
  6. 送你一份perl书单
  7. Linux下增加2G的交换分区
  8. pc端telegram使用方法2021
  9. php 中文网 第十五期——第二课作业
  10. thinkphp上传文件保存2个不同尺寸的图片