问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用java实现一个回调函数

发布网友 发布时间:2022-05-17 15:41

我来回答

2个回答

热心网友 时间:2023-10-27 12:23

* Created by IntelliJ IDEA.
* User: leimin
* Date: 2008-7-31 13:18:33
* 事件接口
*/
public interface Event {
/**
* 返回发生事件信息
*
* @return 事件信息
*/
public String happendEvent();
}

/**
* Created by IntelliJ IDEA.
* User: leimin
* Date: 2008-7-31 13:18:14
* 事件A
*/
public class EventA implements Event {
/**
* 返回发生事件信息
*
* @return 事件信息
*/
public String happendEvent() {
return "发生了事件 EventA,";
}
}

/**
* Created by IntelliJ IDEA.
* User: leimin
* Date: 2008-7-31 13:18:21
* 事件B
*/
public class EventB implements Event{
/**
* 返回发生事件信息
* @return 事件信息
*/
public String happendEvent() {
return "发生了事件 EventB,";
}
}

/**
* Created by IntelliJ IDEA.
* User: leimin
* Date: 2008-7-31 13:20:48
* 工人
*/
public class Worker {
private Event event; //事件
private String name; //工人姓名
private Boss boss; //工人所属的老板

public Worker(String name, Boss boss) {
this.name = name;
this.boss = boss;
}

/**
* 干活
*/
public void doWork() {
System.out.println(name + " is doing working...");
//工人挺辛苦,干着枯燥乏味的重复工作,哈哈
for (int i = 0; i < 2000000; i++) {
int x = i / 234 + 234;
}
System.out.println(name + " was finished work.");
//向老板说明发生的情况
boss.getWorkerEvent(this, event);
}

public Event getEvent() {
return event;
}

public void setEvent(Event event) {
this.event = event;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

/**
* Created by IntelliJ IDEA.
* User: leimin
* Date: 2008-7-31 13:26:22
* 老板
*/
public class Boss {
private String name;

public Boss(String name) {
this.name = name;
}

/**
* 老板接收工人的事件
* @param worker 工人
* @param event 事件
*/
public void getWorkerEvent(Worker worker, Event event) {
System.out.println("老板接收到事件信息: "+worker.getName() + ": " + event.happendEvent());
}
}

/**
* Created by IntelliJ IDEA.
* User: leimin
* Date: 2008-7-31 13:35:38
* 测试类
*/
public class Test {
public static void main(String args[]){
//初始化老板和工人
Boss boss = new Boss("老板");
Worker worker1= new Worker("张三",boss);
Worker worker2= new Worker("李四",boss);

//捏造两个事件
Event event1 = new EventA();
Event event2 = new EventB();

//事件是工人发出的
worker1.setEvent(event1);
worker2.setEvent(event2);

//工人干活,干完了通知老板干的情况如何
worker1.doWork();
worker2.doWork();

热心网友 时间:2023-10-27 12:24

**
* Created by IntelliJ IDEA.
* User: leimin
* Date: 2008-7-31 13:18:33
* 事件接口
*/
public interface Event {
/**
* 返回发生事件信息
*
* @return 事件信息
*/
public String happendEvent();
}

/**
* Created by IntelliJ IDEA.
* User: leimin
* Date: 2008-7-31 13:18:14
* 事件A
*/
public class EventA implements Event {
/**
* 返回发生事件信息
*
* @return 事件信息
*/
public String happendEvent() {
return "发生了事件 EventA!";
}
}

/**
* Created by IntelliJ IDEA.
* User: leimin
* Date: 2008-7-31 13:18:21
* 事件B
*/
public class EventB implements Event{
/**
* 返回发生事件信息
* @return 事件信息
*/
public String happendEvent() {
return "发生了事件 EventB!";
}
}

/**
* Created by IntelliJ IDEA.
* User: leimin
* Date: 2008-7-31 13:20:48
* 工人
*/
public class Worker {
private Event event; //事件
private String name; //工人姓名
private Boss boss; //工人所属的老板

public Worker(String name, Boss boss) {
this.name = name;
this.boss = boss;
}

/**
* 干活
*/
public void doWork() {
System.out.println(name + " is doing working...");
//工人挺辛苦,干着枯燥乏味的重复工作,哈哈
for (int i = 0; i < 2000000; i++) {
int x = i / 234 + 234;
}
System.out.println(name + " was finished work.");
//向老板说明发生的情况
boss.getWorkerEvent(this, event);
}

public Event getEvent() {
return event;
}

public void setEvent(Event event) {
this.event = event;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

/**
* Created by IntelliJ IDEA.
* User: leimin
* Date: 2008-7-31 13:26:22
* 老板
*/
public class Boss {
private String name;

public Boss(String name) {
this.name = name;
}

/**
* 老板接收工人的事件
* @param worker 工人
* @param event 事件
*/
public void getWorkerEvent(Worker worker, Event event) {
System.out.println("老板接收到事件信息: "+worker.getName() + ": " + event.happendEvent());
}
}

/**
* Created by IntelliJ IDEA.
* User: leimin
* Date: 2008-7-31 13:35:38
* 测试类
*/
public class Test {
public static void main(String args[]){
//初始化老板和工人
Boss boss = new Boss("老板");
Worker worker1= new Worker("张三",boss);
Worker worker2= new Worker("李四",boss);

//捏造两个事件
Event event1 = new EventA();
Event event2 = new EventB();

//事件是工人发出的
worker1.setEvent(event1);
worker2.setEvent(event2);

//工人干活,干完了通知老板干的情况如何
worker1.doWork();
worker2.doWork();

}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... 在java中回调函数怎么理解,android中的回调函数和java中有区别吗? java回调函数问题? 怎样理解java中的回调函数 北京一男子愚人节给朋友写敲诈信被判刑,案件的始末有何细节? 安司蜜信被人骗如何处理 关于书信被偷看的事? 最新国产SUV新车质量排名出炉:博越前五,荣威RX5、瑞虎8上榜! 入门不到11万,比博越内饰更精致,吉利博越PRO不香吗? 吃蚕豆对降血压有什么帮助? 联想笔记本电脑ideapad300_15irb 联想笔记本电脑,型号为ideapad 300。win10系统,电脑上有光驱但是上边没按钮,打不开托 联想商用笔记本型号有哪些 联想笔记本电脑型号300s是不是独显4g 刚买的ideapad300型号的联想笔记本电脑,装的正版win10系统,问题是进入不了bios,已 请问一下联想ideapad300-15ibr这款笔记本电脑怎么样? 联想笔记本电脑型号300s是多少钱 联想笔记本电脑300g230键盘型号win10系统可以装吗? 昨天买了个笔记本 联想ideapad 300-15ibr 配置 赛扬N3150 4核 4G内 联想笔记本电脑300s-后面的内容代表什么? 联想300s java里面,c里面都有回调函数,回调函数都是什么东西啊??? java,回调函数??? java的回调函数,什么意思,能不能说的白话一点? java怎么实现c的回调函数 java中回调函数怎么实现,和windows机制下有何区别? Java的回调函数和观察者模式的区别 兔子能洗澡吗? 兔子能洗澡嘛 清真牛肉 就是我们俗称的 黄牛肉和水牛肉吗? 青岛哪里有卖清真牛肉的? 荣耀刷机后格式化后还能定位吗? 我们大家知道赵忠祥主持的动物世界节目,赵忠祥的带有磁性的解说,让很多同学佩服,于是班上就有同学开始 赵忠祥是从哪一年开始主持动物世界的? 浙江21岁男生沉迷“剧本杀”走火入魔,“剧本杀”该为此背锅吗? 怎样仿写文章? 仿写文怎么写才是最好的 在制作海鲜墨鱼汁意面的时候,需要注意什么? 本田xrv的1.5和1.8那个更省油 仿写作文,你觉得最值得仿写的方面在哪些地方 洋葱表皮细胞在KNO3溶液发生质壁分离又还原