使用Java回调函数来实现生活以下三种生活场景,小编也是作为小白在学习阶段自己理解的练习题,可能写的不是很清楚,希望大家多多支持和评论呀~
张伟在超市买了一瓶快乐水和一些吃的,使用支付 APP 完成支付后,过了几秒,APP 通知他已经支付成功;
李雷周一在某某宝 APP 上买了两张周五晚上的电影票。在周五晚上电影即将放映的前 一小时,APP 给他发来了观影通知;
韩梅梅周末在家休息,她把衣服丢到洗衣机里之后就去扫地、做饭去了,过了一会,洗 衣机就「嘀~嘀~」响几声通知她衣服已经洗好了
首先创建一个 CallBack(回调)的Interface(接口)
public interface CallBack { public void renWu(String num); }
创建一个abstract类App
public abstract class App { public abstract void WanChengRenWu(CallBack callBack); }
创建一个RenWu类继承abstract类App,来实现App里面WanChengRenWu的方法给他设定时间,和CallBack里的反馈信息
public class RenWu extends App{ @Override public void WanChengRenWu(CallBack callBack) { // 模拟完成工作的情况。需要消耗一定的时间 try { Thread.sleep(4000); } catch (InterruptedException e) { e.printStackTrace(); } // 回调操作,反馈信息 // callBack.tongZhi("支付成功"); // callBack.tongZhi("距离开播还有一小时"); callBack.renWu("叮~叮~衣服洗好了"); } }
创建三个类:分别是zhangWei、LiLei、HanMeiMei
public class zhangWei implements CallBack { public void XiaDaReWu(App e){ System.out.println("zhangwei买了一瓶快乐水和一些吃的"); // 将张伟作为对象 使用this参数传递 e.WanChengRenWu(this); } @Override public void renWu(String num) { System.out.println("支付宝反馈信息:"+num); } }
public class LiLei implements CallBack{ public void XiaDaTongZhi(App e){ System.out.println("LiLei买了两张周五晚上的电影票"); // 将李雷作为对象 使用this参数传递 e.WanChengRenWu((CallBack) this); } @Override public void renWu(String num) { System.out.println("今天晚上电影即将放映:"+ num); } }
public class HanMeiMei implements CallBack { public void XiaDaoRenWu(App e){ System.out.println("HanMeiMei把衣服丢掉洗衣机去了做饭了"); // 将韩梅梅作为对象 使用this参数传递 e.WanChengRenWu(this); } @Override public void renWu(String num) { System.out.println("洗衣机反馈信息"+num); } }
创建一个测试类Test 里面有张伟、李雷、韩梅梅三个对象 和 具体的任务对象 用三个人的类去完成任务
public class Test { public static void main(String[] args) { // zhangWei z = new zhangWei(); // RenWu x = new RenWu(); // z.XiaDaTongZhi(x); // LiLei l = new LiLei(); // RenWu x = new RenWu(); // l.XiaDaTongZhi(x); HanMeiMei hanMeiMei = new HanMeiMei(); RenWu renWu = new RenWu(); hanMeiMei.XiaDaoRenWu(renWu); } }