Java回調理解 (step by step),回調step

來源:互聯網
上載者:User

Java回調理解 (step by step),回調step

在網上搜尋了許多篇關於java回呼函數的文章,自己也來試了一下寫了這篇部落格,可能有些地方理解不到位,煩請各位大大指正。

在電腦程式設計中,回呼函數,或簡稱回調,是指通過函數參數傳遞到其它代碼的,某一塊可執行代碼的引用。這一設計允許了底層代碼調用在高層定義的子程式。

        在Java裡面,我們使用介面來實現回調。


類比一個情境:一個Girl給她男朋友Man打電話,然後Man給她回複:

首先定義一個介面:

package mine.callback2;public interface CallInterface {void execute();}
Girl:

package mine.callback2;public class Girl {public CallInterface ci;//儲存一個介面引用public void setCallFun(CallInterface ci){this.ci=ci;}public void call(){ci.execute();//回調實現CallInterface介面Man中的方法}}
Man:

package mine.callback2;public class Man implements CallInterface {@Overridepublic void execute() {System.out.println("好的,女王大人");}public static void main(String[] args) {Girl girl = new Girl();girl.setCallFun(new Man());girl.call();}}
介面不變,實現實現以上相同的功能:

Girl:

package mine.callback1;public class Girl {public CallInterface ci;public void CallFun(CallInterface ci){System.out.println("陪我去逛街,好麼?");ci.execute();//進行回調操作}}
Man:

package mine.callback1;public class Man {public static void answerA() {System.out.println("好的,女王大人!");}public static void answerB(){System.out.println("對不起,我這兒還有任務沒完成,以後有時間陪你噢.");}public static void main(String[] args) {Girl girl = new Girl();girl.CallFun(new CallInterface() {@Overridepublic void execute() {//這裡可以調用更多的回答answerB();}});}}
如果思路不夠清晰可以看下面這篇文章:http://kidult.iteye.com/blog/148982





聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.