中文JAVA技術(shù)平等自由協(xié)作創(chuàng)造

          Java專(zhuān)題文章博客和開(kāi)源

          常用鏈接

          統(tǒng)計(jì)

          最新評(píng)論

          Java編程程序回調(diào)函數(shù)的理解

            所謂回調(diào),就是客戶(hù)程序C調(diào)用服務(wù)程序S中的某個(gè)函數(shù)A,然后S又在某個(gè)時(shí)候反過(guò)來(lái)調(diào)用C中的某個(gè)函數(shù)B,對(duì)于C來(lái)說(shuō),這個(gè)B便叫做回調(diào)函數(shù)。例如Win32下的窗口過(guò)程函數(shù)就是一個(gè)典型的回調(diào)函數(shù)。一般說(shuō)來(lái),C不會(huì)自己調(diào)用B,C提供B的目的就是讓S來(lái)調(diào)用它,而且是C不得不提供。由于S并不知道C提供的B姓甚名誰(shuí),所以S會(huì)約定B的接口規(guī)范(函數(shù)原型),然后由C提前通過(guò)S的一個(gè)函數(shù)R告訴S自己將要使用B函數(shù),這個(gè)過(guò)程稱(chēng)為回調(diào)函數(shù)的注冊(cè),R稱(chēng)為注冊(cè)函數(shù)。Web Service以及Java的RMI都用到回調(diào)機(jī)制,可以訪(fǎng)問(wèn)遠(yuǎn)程服務(wù)器程序六 和 彩開(kāi)獎(jiǎng)
           
             重新舉個(gè)例子來(lái)理解回調(diào):
           
             我遇到了一個(gè)問(wèn)題,便用家里的固話(huà)打給我的同事,他說(shuō)不太清楚,稍后給我回復(fù)。我說(shuō)我一會(huì)要出去,你想到了之后打我手機(jī)吧。沒(méi)過(guò)多久,我同事就打手機(jī)過(guò)來(lái)告訴了我答案六 和 彩 資料
           
             下面是代碼:
           
             1、先定義一個(gè)接口,規(guī)定回答問(wèn)題的條件是打我手機(jī)
           
             1. public interface CallBack {
           
             2. //通過(guò)手機(jī)回答
           
             3. void CallIphone();
           
             4. }
           
             2、調(diào)用者(我):
           
             1. public class Me {
           
             2. public void askQuestion(){
           
             3. System.out.println("撥打固話(huà)問(wèn)1+1=?");
           
             4. }
           
             5. }
           
             3、被調(diào)用者(同事):
           
             1. public class You {
           
             2.
           
             3. public void answer(CallBack callBack){
           
             4. //進(jìn)行回調(diào)
           
             5. callBack.CallIphone();
           
             6. }
           
             7.
           
             8. public static void main(String[] args) throws InterruptedException {
           
             9. new Me()。askQuestion();
           
             10. Thread.sleep(3000);
           
             11. new You()。answer(new CallBack() {
           
             12. //實(shí)現(xiàn)接口,即回答問(wèn)題的方式
           
             13. public void CallIphone() {
           
             14. System.out.println("撥打手機(jī)回答等于2");
           
             15. }
           
             16. });
           
             17. }
           
             18. }
           
             4、顯示結(jié)果
           
             撥打固話(huà)問(wèn)1+1=?
           
             撥打手機(jī)回答等于2
           
             代碼很簡(jiǎn)單,理解也很膚淺,希望對(duì)大家有用。

          posted on 2012-02-23 20:19 好不容易 閱讀(195) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          PK10開(kāi)獎(jiǎng) PK10開(kāi)獎(jiǎng)
          主站蜘蛛池模板: 茂名市| 洪洞县| 灵山县| 巍山| 周口市| 陈巴尔虎旗| 元江| 高安市| 牟定县| 澳门| 晋州市| 米脂县| 东乌珠穆沁旗| 鄂尔多斯市| 伊吾县| 黄龙县| 丁青县| 泸西县| 英山县| 乳山市| 永泰县| 盐城市| 和龙市| 龙游县| 竹北市| 百色市| 辽阳县| 阜康市| 育儿| 始兴县| 乡宁县| 利辛县| 福泉市| 云和县| 定结县| 五寨县| 密云县| 竹北市| 建瓯市| 桐城市| 奉新县|