1. 程式人生 > >java回調機制(同步回調)

java回調機制(同步回調)

測試 public ide java 告訴 method clas gen rgs

場景:父親問姐姐:弟弟的作業寫好了嗎?

   姐姐就去問弟弟:弟弟,你作業寫好了嗎?

   弟弟寫完作業後,告訴姐姐:姐姐,我作業寫完了!

   姐姐知道後,就告訴父親:父親,弟弟作業寫完了!

代碼:

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回調機制(同步回調)