當前位置:
首頁 > 知識 > 回調函數理解

回調函數理解

java回調函數在網上了看了些例子,比較繞,不夠清晰,自己寫的一個例子比較通俗,java回調其實很簡單。

舉個例子我是類B,我有個方法叫b(),現在我要調用類A中的方法a(),寫個代碼就是:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

public class ClassB{ //我是類 B

public void b(){ //我是類B中的方法b()

ClassA a = new ClassA();//我現在實例化A類,為的是調用A類中的方法a()

a.a(); //快看我現在開始調用A類中的a()方法了,代碼執行到這大家都懂,就是一個普通的調用其他類的方法,

//那麼回調怎麼回事,回調就是我執行a()方法結束後,需要再執行我自己(類B)的方法back()

//回調就是這個意思,我調用你的方法,調用完你的方法後,再回過頭來調用自己的方法

//注意,有人就要說了 我在a.a()方法後面直接加上一個 back()不就行了,可以,但那不是回調函數

//回調更像是一個約定,就是如果我調用了a()方法,那麼就必須要回調,而不需要顯示調用

}

public void backs (){

System.out.println("我就是回調函數");//暫時不要管我,其實我就是回調函數

}

}

再舉個例子就是:我是老闆(Boss),我有一部電話叫back,現在我安排了一個任務給員工(Emp),讓他給我列印一份報表(doPrint),列印好報表後再通過我的

電話back告訴我。那麼流程就很清晰了

1

2

3

4

5

6

7

8

public class Boss{ //我是老闆

Emp emp = new Emp();//現在我new一個員工出來

emp.doPrint(); //我現在讓這個員工去給我列印一份報表,報表列印好後直接通過back電話通知我。

public void back(){

System.out.println("老闆報表列印好了,請你放心!");//這個是我的電話

}

}

上面說了

1

2

3

emp.doPrint();//報表列印好後

back(); //直接通過back電話告訴老闆,這種寫法不是回調

那麼我怎麼讓員工emp.doPring();列印好報表後打電話給我呢。可以想像一下就是在emp.doPrint();列印報表這個方法中再次調用Boss的電話

1

2

3

4

5

6

7

public class Emp(){ //員工

public void doPrint(){ //員工開始列印報表了

System.out.println("老闆我報表列印好了");//這個時候員工把報表列印好了,再通過老闆的電話通知老闆,怎麼做呢?

Boss boss = new Boss();

boss.back(); //這就是通過老闆的電話在我列印好了以後,告知老闆

}

}

這樣就實現了我doPrint();//報表列印好後,回調Boss的電話通知Boss,這就是回調

以上都是偽代碼,只是為了說明什麼是回調,但是在實際應用中,都是利用介面設置回調函數的介面

回調函數理解

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

要嫁就嫁程序猿——錢多話少死的早?

TAG:程序員小新人學習 |