java反弹表达式在网路上了看了些范例,较为绕,不如明晰,他们写的两个范例较为浅显,java反弹只不过很单纯。
举个范例我是类B,我有个方式叫b(),那时我要初始化类A中的方式a(),写个标识符是:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class ClassB{ //我是类 B
public void b(){ //我是类B中的方式b()
ClassA a = new ClassA();//我那时示例化A类,以求初始化A类中的方式a()
a.a(); //快看我那时已经开始初始化A类中的a()方式了,程序执行到这我们都懂,是两个普通的初始化其他类的方式,
//那么反弹怎么回事,反弹是我执行a()方法结束后,需要再执行我他们(类B)的方式back()
//反弹是这个意思,我初始化你的方式,初始化完你的方式后,再回过头来初始化他们的方式
//注意,有人就要说了 我在a.a()方式后面直接加上两个 back()不就行了,可以,但那不是反弹表达式
//反弹更像是两个约定,是如果我初始化了a()方式,那么就必须要反弹,而不需要显示初始化
}
public void backs (){
System.out.println(“我是反弹表达式”);//暂时不要管我,只不过我是反弹表达式
}
}
再举个范例是:我是老板(Boss),我有一部电话叫back,那时我安排了两个任务给员工(Emp),让他给我打印一份报表(doPrint),打印好报表后再通过我的
电话back告诉我。那么流程就很明晰了
1
2
3
4
5
6
7
8
public class Boss{ //我是老板
Emp emp = new Emp();//那时我new两个员工出来
emp.doPrint(); //我那时让这个员工去给我打印一份报表,报表打印好后直接通过back电话通知我。
public void back(){
System.out.println(“老板报表打印好了,请你放心!”);//这个是我的电话
}
}
上面说了
1
2
3
emp.doPrint();//报表打印好后
back(); //直接通过back电话告诉老板,这种写法不是反弹
那么我怎么让员工emp.doPring();打印好报表后打电话给我呢。可以想象一下是在emp.doPrint();打印报表这个方式中再次初始化Boss的电话
1
2
3
4
5
6
7
public class Emp(){ //员工
public void doPrint(){ //员工已经开始打印报表了
System.out.println(“老板我报表打印好了”);//这个时候员工把报表打印好了,再通过老板的电话通知老板,怎么做呢?
Boss boss = new Boss();
boss.back(); //这是通过老板的电话在我打印好了以后,告知老板
}
}
这样就实现了我doPrint();//报表打印好后,反弹Boss的电话通知Boss,这就是反弹
以上都是伪标识符,只是为了说明什么是反弹,但是在实际应用中,都是利用接口设置反弹表达式的接口