<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    神奇好望角 The Magical Cape of Good Hope

    庸人不必自擾,智者何需千慮?
    posts - 26, comments - 50, trackbacks - 0, articles - 11
      BlogJava :: 首頁 ::  :: 聯系 :: 聚合  :: 管理

    用接口實現回調

    Posted on 2008-03-10 21:47 蜀山兆孨龘 閱讀(383) 評論(0)  編輯  收藏
    用接口實現回調 Implementing Callback with Interface
      C 語言里的函數指針,JavaScript 里的函數參數可以實現回調,從而完成很多動態功能。請看下面的 JavaScript 代碼: C's function pointer and JavaScript's function parameter can implement callback, accomplishing lots of dynamic functionalities. Please look at the following JavaScript code:
    1. function add(a, b) {
    2.     return a + b;
    3. }
    4. function sub(a, b) {
    5.     return a - b;
    6. }
    7. function cal(a, b, callback) {
    8.     alert(callback(a, b));
    9. }
    10. cal(2, 1, add);
    11. cal(2, 1, sub);
    12. cal(2, 1, function (a, b) {
    13.     return a * b;
    14. });
      在對 cal 函數的三次調用中,變量 callback 分別指向三個函數(包括一個匿名函數),從而在運行時產生不同的邏輯。如果仔細研究網上各種開源的 JS 庫,會發現大量此類回調。 In the three invokings to function cal, variable callback points to three different functions (including one anonymous function), which generates different logics at runtime. If you study various open source JS libraries on the Internet in depth, you will find many callbacks of this kind.
      Java 語言本身不支持指針,所以無法像 JavaScript 那樣將方法名直接作為參數傳遞。但是利用接口,完全可以達到相同效果: Java language itself doesn't support pointer, so the method name can't be directly passed as a parameter like JavaScript. But with interface, the completely same effect can be achieved:
    1. public interface Cal {
    2.     public int cal(int a, int b);
    3. }
    4. public class Add implements Cal {
    5.     public int cal(int a, int b) {
    6.         return a + b;
    7.     }
    8. }
    9. public class Sub implements Cal {
    10.     public int cal(int a, int b) {
    11.         return a - b;
    12.     }
    13. }
    14. public class Test {
    15.     public static void main(String[] args) {
    16.         test(2, 1, new Add());
    17.         test(2, 1, new Sub());
    18.         test(2, 1, new Cal() {
    19.             public int cal(int a, int b) {
    20.                 return a * b;
    21.             }
    22.         });
    23.     }
    24.     private static void test(a, b, Cal c) {
    25.         System.out.println(c.cal(a, b));
    26.     }
    27. }

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 妞干网免费视频观看| 亚洲永久中文字幕在线| 亚洲中文无码永久免费| 在线看片免费人成视频久网下载 | 亚洲人AV在线无码影院观看| 亚洲精品无码久久千人斩| 日本成人在线免费观看| 日韩国产免费一区二区三区| 中文字幕日本人妻久久久免费| 国产亚洲精品国产福利在线观看| 精品日韩99亚洲的在线发布| 久久亚洲熟女cc98cm| 国产精品亚洲片在线观看不卡| 亚洲午夜无码片在线观看影院猛| 搡女人免费视频大全| 久久99精品免费视频| 一个人看的hd免费视频| 老司机午夜性生免费福利| 亚洲熟妇AV日韩熟妇在线| 内射干少妇亚洲69XXX| 亚洲AV无码久久精品蜜桃| 青青草原亚洲视频| 亚洲精品第一国产综合境外资源| 日韩精品视频免费网址| 成人一a毛片免费视频| 精品国产无限资源免费观看| 少妇人妻偷人精品免费视频 | 亚洲综合亚洲综合网成人| 伊人久久亚洲综合影院| 成人永久福利免费观看| 美女被免费视频网站a国产| 成人毛片18女人毛片免费| AV免费网址在线观看| 日日操夜夜操免费视频| 在线免费观看国产视频| 啊v在线免费观看| 亚洲高清免费视频| 浮力影院亚洲国产第一页| 精品国产亚洲男女在线线电影| 亚洲精品动漫人成3d在线| 中文字幕日韩亚洲|