❶ java中怎樣定義回調函數
程序員A寫了一段程序(程序a),其中預留有回調函數介面,並封裝好了該程序。程序員B要讓a調用自己的程序b中的一個方法,於是,他通過a中的介面回調自己b中的方法。目的達到。在C/C++中,要用回調函數,被掉函數需要告訴調用者自己的指針地址,但在JAVA中沒有指針,怎麼辦?我們可以通過介面(interface)來實現定義回調函數。
假設我是程序員A,以下是我的程序a:
[java] view plainprint?
public class Caller
{
public MyCallInterface mc;
public void setCallfuc(MyCallInterface mc)
{
this.mc= mc;
}
public void call(){
this.mc.method();
}
}
還需要定義一個介面,以便程序員B根據我的定義編寫程序實現介面。
public interface MyCallInterface
{
public void method();
}
於是,程序員B只需要實現這個介面就能達到回調的目的了:
public class B implements MyCallInterface
{
public void method()
{
System.out.println("回調");
}
public static void main(String args[])
{
Caller call = new Caller();
call.setCallfuc(new B());
call.call();
}
}
❷ java裡面,c裡面都有回調函數,回調函數都是什麼東西啊
嗯,的確都有回調函數,但是C與java中的回調實現的方法不太一樣
C中的回調函數,是由指針實現的,將某個函數方法的地址賦給某個指針變數,然後直接由這個變數去調用方法。可以通過一個指針實現不同方法的調用。
java中,沒有指針這一概念。所以回調函數的意義似乎也不太一樣,感覺跟C比起來更像是團隊開發的一種手段和方法。java中的回調是通過介面實現的,調用函數不用知道被調用的函數是如何實現的,只需要寫好一個被調函數的介面聲明,然後根據介面調用。至於被調用函數,只需要重載介面方法就可以讓調用函數去調用...說白了就是,一個人只負責去寫大的程序流程,細節的方法部分不需要寫,只要留好介面聲明,然後讓別的人去寫這個介面的重載就可以了。更適合於團隊開發以及程序更新優化。
好吧我快給我自己說暈了
給你兩個例子去看下,這倆寫的還都比較清楚
java的:http://blog.csdn.net/allen_zhao_2012/article/details/8056665
C的:http://www.cnblogs.com/chenyuming507950417/archive/2012/01/02/2310114.html
❸ Java 什麼是回調
所謂回調,就是客戶程序Client調用服務程序Service中的某個方法A,然後Service又在某個時候反過來調用Client中的某個方法B,對於Client來說,這個B便叫做回調函數
回調實現的步驟
1、定義回調介面和回調方法
2、Client實現回調介面和回調方法,並在Client中包含Service引用,通過引用調用Servie中的方法並且必須傳入一個當前對象Client(因為當前對象實現了CallBack介面所以也屬於介面對象)
3、在Service中定義一個介面對象並在方法中對初始化(將Client傳過來的當前對象賦值給介面對象),通過介面對象調用介面中方法(調用的Client實現的介面方法)
4、測試