1. 程式人生 > >回撥函式簡單例項

回撥函式簡單例項

類似於打電話,B給A打電話讓A三秒鐘後提醒他時間到了。

一、建立一個介面:CallBack.java(電話)

public interface CallBack {
	public void callMeWhen3sLaterHappened(String info);
}

二、建立一個類實現介面:B.java

public class B implements CallBack{
	public void sayHello(){
		System.out.println("hello my name is B");
	}
	
        //實現介面方法
	public void callMeWhen3sLaterHappened(String info){
		System.out.println(info);
	}
	
	public void callA(A a){
		a.callMe3sLater(this);//給A打電話讓他提醒自己時間(把B這個物件也就是自己傳遞給A當做引數)
	}
	
	public static void main(String[] args){
		A a = new A();
		B b = new B();
		b.callA(a);
	}
	
	
}

三、建立一個類:A.java

import java.util.Timer;
import java.util.TimerTask;


public class A {
	public void sayHello(){
		System.out.println("hello my name is A");
	}
	
	/**
	 * 3 秒鐘之後通知我
	 */
	public void callMe3sLater(final CallBack b){
		Timer timer = new Timer();
		timer.schedule(new TimerTask() {
			@Override
			public void run() {
				b.callMeWhen3sLaterHappened("3秒鐘到了");//通知b三秒鐘到了,呼叫b的介面方法(類似於通過打電話才能傳遞資訊)
			}
		}, 3 * 1000);
	}
	
}