java回调机制(同步回调)

摘要:
");}}Sister.java姐姐类:packagemyInterfaceCallback;publicclassSisterimplementsCallBack{publicBrotherbrother;publicSister{super();this.brother=brother;}@Overridepublicvoidtell{//TODOAuto-generatedmethodstubSystem.out.println;}publicvoidtoAskBrother{//TODOAuto-generatedmethodstubbrother.doHomework;tellParent.tell("姐姐:父亲,弟弟作业写完了!");}}Parent.java父亲类:packagemyInterfaceCallback;publicclassParentimplementsCallBack{publicSistersister;publicParent{super();this.sister=sister;}@Overridepublicvoidtell{//TODOAuto-generatedmethodstubSystem.out.println;}publicvoidaskToSister{//TODOAuto-generatedmethodstubSystem.out.println;sister.toAskBrother(Parent.this,"姐姐:弟弟,你作业做好了吗?

场景:父亲问姐姐:弟弟的作业写好了吗?

姐姐就去问弟弟:弟弟,你作业写好了吗?

弟弟写完作业后,告诉姐姐:姐姐,我作业写完了!

姐姐知道后,就告诉父亲:父亲,弟弟作业写完了!

代码:

CallBack.java传递消息的接口:

package myInterfaceCallback;

public interface CallBack {

public void tell(String result);
}

Brother.java弟弟类:

package myInterfaceCallback;

import myInterfaceCallback.CallBack;

public class Brother {
public void doHomework(CallBack tellSister, String question) {
System.out.println(question);
tellSister.tell("弟弟:姐姐,我已经写完了!");
}
}

Sister.java姐姐类:

package myInterfaceCallback;

public class Sister implements CallBack{
public Brother brother;
public Sister(Brother brother) {
super();
this.brother = brother;
}

@Override
public void tell(String result) {
// TODO Auto-generated method stub
System.out.println(result);
}
public void toAskBrother(CallBack tellParent, String question) {
// TODO Auto-generated method stub
brother.doHomework(Sister.this, question);
tellParent.tell("姐姐:父亲,弟弟作业写完了!");
}
}

Parent.java父亲类:

package myInterfaceCallback;

public class Parent implements CallBack{
public Sister sister;

public Parent(Sister sister) {
super();
this.sister = sister;
}

@Override
public void tell(String result) {
// TODO Auto-generated method stub
System.out.println(result);
}

public void askToSister(String question) {
// TODO Auto-generated method stub
System.out.println(question);
sister.toAskBrother(Parent.this, "姐姐:弟弟,你作业做好了吗?");
}

}

Test.java测试运行类:

package myInterfaceCallback;

public class Test {

public static void main(String[] args) {
// TODO Auto-generated method stub
Parent parent = new Parent(new Sister(new Brother()));
parent.askToSister("父亲:弟弟作业做好了吗?");
}

}

运行结果:

父亲:弟弟作业做好了吗?
姐姐:弟弟,你作业做好了吗?
弟弟:姐姐,我已经写完了!
姐姐:父亲,弟弟作业写完了!

免责声明:文章转载自《java回调机制(同步回调)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C#基础系列——多线程 信号量 异步 编程 Task Thread async和awaitSSL详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

mini.DataGrid使用说明

√√√ ajaxOptionsObjectajax配置对象。√√√ idFieldString是行数据的唯一字段。设置为“client”之后,客户端将排序√√√√ totalCountNumber记录总数√√√ defaultColumnWidthNumber默认列宽100√√√√ showColumnsBoolean显示标头true√√√√ showPag...

【转载】SecureCRT配色推荐和永久设置

2.配置文件夹和其他颜色选项==“全局选项==”终端==“外观==”ANSI颜色单击第二行中的第五个色块以修改文件夹颜色:对第二个色块执行相同的操作以修改压缩包和jar包的颜色:如果设置后文件夹和其他的颜色无效,您可以对第二行中设置背景色和字体颜色的颜色块执行相同的操作!...

Android开发实战——记账本(4)

父母亲mCostBeanList.remove(位置);builder.setNegativeButton(“取消”;builder.create().show();returntrue;}returnsuper.onOptionsItemSelected(项);...

5G中的频点计算及实例分析

相关图表:关于∏SSB的频域位置SSREF和GSCN之间的关系,请参见下表:注:SCSspacedchannelrasterisM=3的工作频带的默认值。同步网格是5G的第一个概念,旨在加快终端扫描SSB的频率位置。GSCN通常用于在SA联网模式下加速时频同步,以继续解释MIB和SIB1消息;对于NSA来说,这是不必要的。RRC重配置消息已经携带了NR的SS...

ES6学习之对象的遍历

写在前面的话:在es6中一共有五种遍历对象的方法,如下:for...infor...in循环遍历对象自身的和继承的可枚举属性。Object.getOwnPropertySymbolsObject.getOwnPropertySymbols返回一个数组,包含对象自身的所有Symbol属性的键名。其结果为:从结果可以看出对boy对象的遍历可以得到他的直接身的属性...

Linux中使用gdb dump内存

在应急响应中,我们经常需要转储某个内存块以进行分析。今天我们将讨论使用gdb命令转储sshd进程的内存。根据Linux系统的设计理念,内核只提供转储内存的机制。用户要转储什么样的内存以及要转储多少内存是策略问题,由用户决定。之后,转到/tmp目录,可以从dump中看到sshd.dmp内存字符串-10sshd.dump#,以查看sshd.ddump内存中至少超...