- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
对于Java回调的最深刻解析
第一站,来个骚问题开始之前,先想象一个场景:幼稚园的小朋友(邱同学)刚刚学习了10以内的加法。老师大人在黑板上写一个式子 “1 + 1 = ”,由邱同学来填空。由于已经学习了10以内的加法,邱同学可以完全靠自己来计算这个题目,额,这个需求简单吧,就写一个add(int a,int b) 不就解决了么,是的。那动手吧:public class Student{ private String name = null; public Student(String name) { = name; } public void setName(String name) { = name; } private int add(int a, int b) {return a + b; } public void fillBlank(int a, int b) { int result = add(a, b); System.out.println(name + 心算: + a + + + b + = + result); }}邱同学在填空(fillBalnk)的时候,直接心算(add)了一下,得出结果是2,并将结果写在空格里,测试:public class Test{ public static void main(String[] args) { int a = 1; int b = 1; Student s = new Student(邱同学); s.fillBlank(a, b); }}运行结果如下:邱同学心算:1 + 1 = 2该过程完全由Student类的实例对象单独完成,并未涉及回调机制。第二站,进击的老师课间,老师突发奇想在黑板上写了“168 + 291 = ”让邱同学完成,然后回办公室了。呀儿咯!为什么所有老师都跟邱同学过不去啊?明明超纲了好不好~~?这时候邱同学然而明显不能再像上面那样靠心算来完成了,正在一脸懵逼的时候,同桌的小娴娴同学递过来一个只能计算加法的计算器,而邱同学恰好知道怎么用计算器,于是通过计算器计算得到结果并完成了填空。计算器的代码为:public class Calculator{ public int add(int a, int b) {return a + b; }}123456修改Student类,添加使用计算器的方法:public class Student{ private String name = null; public Student(String name) { = name; } public void setName(String name) { = name; } @SuppressWarnings(unused) private int calcADD(int a, int b) {return a + b; } private int useCalculator(int a, int b) {return new Calculator().add(a, b); } public void fillBlank(int a, int b) { int result = useCalculator(a, b); System.out.println(name + 使用计算器: + a + + + b + = + result); }}0212223测试代码如下:public class Test{ public static void main(String[] args) { int a = 168; int b = 291; Student s = new Student(邱同学); s.fillBlank(a, b); }}运行结果如下:邱同学使用计算器:168 + 291 = 459该过程中仍未涉及到回调机制,但是部分邱同学的部分工作已经实现了转移,由计算器来协助实现。第三站,暴走的老师发现邱同学完成了3位数的加法,老师觉得邱同学很聪明,是个可塑之才。于是又在黑板上写下了“26549 + 16487 = ”,让邱同学上课之前完成填空,然后又回办公室了。邱同学看着教室外面撒欢儿的小伙伴,不禁悲从中来。再不出去玩,这个课间就要废了啊!!!! 看着小娴娴再一次递上来的计算器,邱同学心生一计:让小娴娴代劳。邱同学告诉小娴娴题目是“26549 + 16487 = ”,然后指出填写结果的具体位置,然后就出去快乐的玩耍了。这里,不把小娴娴单独实现出来,而是把这个只能算加法的计算器和小娴娴看成一个整体,一个会算结果还会填空的超级计算器。这个超级计算器需要传的参数是两个加数和要填空的位置,而这些内容需要邱同学提前告知,也就是邱同学要把自己的一部分方法暴漏给小娴娴,最简单的
您可能关注的文档
- 外国文学讲义(下编).doc
- 外国新闻史复习笔记重点.docx
- 外国留学生汉语比赛试题.doc
- 外汇风险管理的要诀.doc
- 外汇风险管理练习题.doc
- 外汇风险及防范.doc
- 外汇风险对外贸企业的影响.doc
- 多元线性回归Wald检验.doc
- 外贸客服邮件回复模板很详细的.doc
- 多元化结题.docx
- 2025年广西中考地理二轮复习:专题四+人地协调观+课件.pptx
- 2025年广西中考地理二轮复习:专题三+综合思维+课件.pptx
- 2025年中考地理一轮教材梳理:第4讲+天气与气候.pptx
- 第5讲+世界的居民课件+2025年中考地理一轮教材梳理(商务星球版).pptx
- 冀教版一年级上册数学精品教学课件 第1单元 熟悉的数与加减法 1.1.6 认识1-9 第6课时 合与分.ppt
- 2025年中考一轮道德与法治复习课件:坚持宪法至上.pptx
- 2025年河北省中考一轮道德与法治复习课件:崇尚法治精神.pptx
- 八年级下册第二单元+理解权利义务+课件-2025年吉林省中考道德与法治一轮复习.pptx
- 精品解析:湖南省娄底市2019-2020学年八年级(上)期中考试物理试题(原卷版).doc
- 2025年中考地理一轮教材梳理:第10讲+中国的疆域与人口.pptx
文档评论(0)