這篇文章主要講解了“java回調(diào)函數(shù)的方法介紹”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“java回調(diào)函數(shù)的方法介紹”吧!
在C或者C++中回調(diào)函數(shù)的定義:
程序在調(diào)用一個(gè)函數(shù)時(shí),將自己的函數(shù)的地址作為參數(shù)傳遞給程序調(diào)用的函數(shù)時(shí)(那么這個(gè)自己的函數(shù)稱回調(diào)函數(shù))
Java中沒(méi)有指針,不能傳遞方法的地址,一般采用接口回調(diào)實(shí)現(xiàn):把實(shí)現(xiàn)某一接口的類創(chuàng)建的對(duì)象的引用賦給該接口聲明的接口變量,那么該接口變量就可以調(diào)用被類實(shí)現(xiàn)的接口的方法。
實(shí)現(xiàn)回調(diào)的原理簡(jiǎn)介如下:
首先創(chuàng)建一個(gè)回調(diào)對(duì)象,然后再創(chuàng)建一個(gè)控制器對(duì)象,將回調(diào)對(duì)象需要被調(diào)用的方法告訴控制器對(duì)象??刂破鲗?duì)象負(fù)責(zé)檢查某個(gè)場(chǎng)景是否出現(xiàn)或某個(gè)條件是否滿足。當(dāng)此場(chǎng)景出現(xiàn)或此條件滿足時(shí),自動(dòng)調(diào)用回調(diào)對(duì)象的方法。
可以舉個(gè)現(xiàn)實(shí)生活中的例子:
一讀者想借《軟件技術(shù)學(xué)習(xí)與實(shí)踐》這本書(shū),但這本書(shū)已被其他讀者借走了。于是,讀者與圖書(shū)館管理員間發(fā)生了以下對(duì)話:
讀者:“我把我的電話號(hào)碼告訴你,等書(shū)一到就馬上通知我?!?/p>
管理員:“好的。另一讀者把書(shū)還回來(lái)后,馬上給您打電話,書(shū)我先幫您留著?!?/p>
在上述這個(gè)場(chǎng)景中,讀者就是“回調(diào)對(duì)象”,管理員就是“控制器對(duì)象”,讀者的電話號(hào)碼就是“回調(diào)對(duì)象的方法”。
詳細(xì)的實(shí)例如下:
1、創(chuàng)建一個(gè)回調(diào)接口:
1 //回調(diào)接口
2 public interface ICallBack
3 {
4 void run();
5 }
2、創(chuàng)建回調(diào)接口的實(shí)現(xiàn)類:
1 class CallBackClass implements ICallBack
2 {public void run()
3 {
4 //輸出當(dāng)前時(shí)間
5 System.out.println(System.currentTimeMillis()
);
6 }
7 }
3、創(chuàng)建控制類
1 class Controller
2 {
3 public ICallBack
CallBackObject = null;// 引用回調(diào)對(duì)象
4 Scanner input = new Scanner(System.in); //讀取命令行輸入
5 public Controller(ICallBack
obj)
6 {
7 this.CallBackObject = obj;
8 }
9 public void Begin()
10 {
11 while(input.next() != null)//判斷是否有輸入
12 {
13 CallBackObject.run();
14 }
15 }
16 }
運(yùn)行程序:
1 class Program
2 {
3 static void Main(string[]
args)
4 {
5 //創(chuàng)建控制器對(duì)象,將提供給它的回調(diào)對(duì)象傳入
6 Controller obj = new Controller(new CallBackClass());
7 //啟動(dòng)控制器對(duì)象運(yùn)行
8 obj.Begin();
9 }
10 }
在控制器類中引用了回調(diào)對(duì)象,因此就能調(diào)用回調(diào)方法,當(dāng)控制器進(jìn)行某些判斷之后(如:監(jiān)聽(tīng)鼠標(biāo)單擊操作)就會(huì)自動(dòng)調(diào)用回調(diào)方法!簡(jiǎn)易流程圖如下:
感謝各位的閱讀,以上就是“java回調(diào)函數(shù)的方法介紹”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)java回調(diào)函數(shù)的方法介紹這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
本文標(biāo)題:java回調(diào)函數(shù)的方法介紹-創(chuàng)新互聯(lián)
文章路徑:http://aaarwkj.com/article32/dspspc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網(wǎng)站內(nèi)鏈、軟件開(kāi)發(fā)、營(yíng)銷型網(wǎng)站建設(shè)、做網(wǎng)站、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容