java 回調函數很好懂

首先先介紹回調函數的概念。比如客戶端client,想要調用服務器端server的某個函數為你提供服務。比如炒西紅柿炒蛋,cookTomato() 這時候,服務器端說,你先付錢才能為你服務,這時候服務器端要調用客戶端的getMoney().才能為你繼續服務。這里的getMoney就是回調函數了。而且這}getMoney()方法是一個接口方法,因為客戶端只要給錢就好,不管是人民幣還是美元,我都接受。

public interface Money(){

//要被回調的方法

void float getMoney();

}

public class Server { ??? //用Money接口作為參數 ?public boolean cookTomatoWithEgg(Money money){ ? System.out.println("有人要西紅柿操蛋了,先給我錢,8元以上我才給你炒"); ? ? if( money.getMoney() >= 8){ ? ?? System.out.println("開始洗西紅柿"); ?? System.out.println("開始炒菜"); ?? System.out.println("完成了"); ?? return true; ? } ????? return false; ?} ? ? }

public class Client { ??? //吃中飯了想要西紅柿操蛋, ?public static void haveLunch(Server server){ ? ? boolean result = server.cookTomatoWithEgg(new Money() { ?? ?? @Override ?? public float getMoney() { ??? System.out.println("回調方法,我付5元,人民幣"); ??? return 5; ?? } ? }); ? ? if(!result){ ?? System.out.println("錢不夠"); ? } ???????? result = server.cookTomatoWithEgg(new Money() { ?? ?? @Override ?? public float getMoney() { ??? System.out.println("回調方法,我付10元,人民幣"); ??? return 10; ?? } ? }); ???????? if(result){ ??? System.out.println("終于吃到吃西紅柿操蛋"); ?? } ?} ? ? ?/** ? * @param args ? */ ?public static void main(String[] args) { ? Client client = new Client(); ? Server server = new Server(); ? client.haveLunch(server);

?}

}

?

分享:http://jxg198168.iteye.com/blog/1885921

轉載于:https://www.cnblogs.com/lippeixian/p/5027316.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/397122.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/397122.shtml
英文地址,請注明出處:http://en.pswp.cn/news/397122.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mongoDB操作詳細

簡介 它和我們使用的關系型數據庫最大的區別就是約束性,可以說文件型數據庫幾乎不存在約束性,理論上沒有主外鍵約束,沒有存儲的數據類型約束等等 關系型數據庫中有一個 "表" 的概念,有 "字段" 的概念,有 "數據條目" 的概念 MongoDB中也同樣有以上…

mysql 存儲過程 on_MySQL存儲過程的權限問題小結

MySQL的存儲過程,沒錯,看起來好生僻的使用場景。問題源于一個開發同學提交了權限申請的工單,需要開通一些權限。本來是一個很正常的操作,但在我來看是比較著急且緊迫的,說來慚愧,忙著方向規劃和開發的事情&…

搜索引擎蜘蛛爬蟲原理

permike 原文 搜索引擎蜘蛛爬蟲原理 關于搜索引擎的大話還是少說些,下面開始正文搜索引擎蜘蛛爬蟲原理: 1 聚焦爬蟲工作原理及關鍵技術概述 網絡爬蟲是一個自動提取網頁的程序,它為搜索引擎從Internet網上下載網頁,是搜索引擎的重…

《Android開發藝術探索》讀書筆記 (10) 第10章 Android的消息機制

第10章 Android的消息機制 10.1 Android消息機制概述 (1)Android的消息機制主要是指Handler的運行機制,其底層需要MessageQueue和Looper的支撐。MessageQueue是以單鏈表的數據結構存儲消息列表但是以隊列的形式對外提供插入和刪除消息操作的消息隊列。MessageQueue只…

mysql索引引擎_mysql搜索引擎和索引那些事

mysql的存儲引擎三種存儲方式**InnoDB **(默認)一個文件存儲表結構,一個存儲數據和目錄(索引)# 一個文件 book_name | author| press | price | pub_date frm文件 frame的縮寫# 另一個文件(數據 目錄)# | 倚天屠龍記 | egon | 北京工業地雷出版社 | 70.00 | 2019-07…

SPOJ HIGH Highways ——Matrix-Tree定理 高斯消元

【題目分析】 Matrix-Tree定理高斯消元 求矩陣行列式的值&#xff0c;就可以得到生成樹的個數。 至于證明&#xff0c;可以去看Vflea King&#xff08;炸樹狂魔&#xff09;的博客 【代碼】 #include <cmath> #include <cstdio> #include <cstring> #include…

深度ip轉換器手機版app_房串串經紀人版app下載-房串串經紀人版app手機版 v1.0.0...

房串串經紀人版app&#xff1a;專門為房產經紀人打造的輔助辦公軟件&#xff0c;提供的功能非常的全面&#xff0c;涵蓋了房產服務過程中的各個環節&#xff0c;隨時可以手機在線處理自己的日常工作&#xff0c;提高了工作的效率&#xff0c;操作很簡單&#xff0c;讓你更好的實…

netduino之電源參考電路MC33269DT-5.0G

手里有塊netduino的板子&#xff0c;一直閑置未用&#xff0c;netduino具體是什么不知道的就百度吧&#xff0c;我這也不是主要講netduino開發的&#xff0c;簡單說就是用.net開發硬件&#xff0c;了解到netduino也是原來學過C#&#xff0c;當然我主要的工作還是嵌入式硬件開發…

漢王考勤 連接mysql_漢王考勤管理軟件打開時出現:連接數據錯誤,請確認數據庫服務器信息是否有誤。這樣該怎樣解決?...

漢王指紋考勤系統故障答疑1. 考勤鐘上的指紋記錄丟失了。答&#xff1a;沒有可能自己丟失&#xff0c;只可能是誤刪除了指紋信息&#xff0c;只能重新登錄指紋。2. 在預處理時時間過長。答&#xff1a;由于用戶單位的人員多&#xff0c;軟件設置的班次亂等因素造成&#xff1b;…

PowerShell使用教程

一、說明 1.1 背景說明 個人對PowerShell也不是很熟悉&#xff0c;開始的時候就突然看到開始菜單中多了個叫PowerShell的文件夾&#xff0c;后來一點就看到某個教程視頻說PowerShell很厲害但也沒怎么聽&#xff0c;再后來就看到kali也有了一些PowerShell的腳本這才意識到PowerS…

python Gunicorn

1. 簡介 Gunicorn(Green Unicorn)是給Unix用的WSGI HTTP 服務器&#xff0c;它與不同的web框架是非常兼容的、易安裝、輕、速度快。 2. 示例代碼1 def app(environ, start_response):data b"Hello World\n"start_response("200 OK", [("Content-Type…

如何使處于不同局域網的計算機實現遠程通信_小區自來水二次加壓泵站遠程監控系統方案...

一、小區自來水二次加壓泵站遠程監控系統方案項目概述隨著城市高效快速地發展&#xff0c;市區規模越來越大&#xff0c;小區二次加壓泵房將繼續增加&#xff0c;供水公司二次加壓泵房管理工作將更加繁重。目前小區二次加壓供水方式主要有兩種&#xff0c;一種是不銹鋼水箱不銹…

Java中的Enum的使用與分析

示例&#xff1a; public enum EnumTest {FRANK("The given name of me"),LIU("The family name of me");private String context;private String getContext(){return this.context;}private EnumTest(String context){this.context context;}public sta…

postgresql返回行數_怎么優化你的SQL查詢?以PostgreSQL為例

實際工作中&#xff0c;我們每個人難免都會要寫SQL&#xff0c;執行SQL&#xff0c;但是有時時候執行非常慢&#xff0c;甚至獲得不了結果。這時候你會怎么辦&#xff1f;放棄&#xff1f;去苦口婆心的求隔壁房間胡子擦擦的猥瑣DBA大叔&#xff1f;NO&#xff0c;正確方法是先檢…

首次構建android studio gradle 下載緩慢的問題

1、先使用其他工具下載gradle&#xff0c; https\://services.gradle.org/distributions/gradle-2.14.1-all.zip 2、然后放在C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.14.1-all\8bnwg5hd3w55iofp58khbp6yv 目錄中 隨機碼文件夾可以通過先嘗試構建&#xff0c;讓…

288. Unique Word Abbreviation

題目&#xff1a; An abbreviation of a word follows the form <first letter><number><last letter>. Below are some examples of word abbreviations: a) it --> it (no abbreviation)1 b) d|o|g --> d…

jqgrid mysql 分頁_jQgrid 分頁顯示

當使用jqgrid去顯示數據的時候&#xff0c;如果數據太多&#xff0c;那么jqgrid就會繪制的很慢&#xff0c;這樣很影響用戶的體驗&#xff0c;十分影響用戶的心情&#xff0c;所以我們采用分頁的方式去取數據&#xff0c;這樣就能避免用戶長時間的等待&#xff0c;從而提升用戶…

echarts 詞云_python Flask+爬蟲制作股票查詢、歷史數據、股評詞云網頁

自學python的數據分析&#xff0c;爬蟲后&#xff0c;花了幾天時間看視頻學習Flask做了一個簡單的股票查詢網頁。本來還想著加入一些其他功能&#xff0c;比如財務指標分析&#xff0c;輿情分析&#xff0c;最完美的想法是做成一個股票評分系統&#xff0c;輸入股票代碼可以自動…

JavaSE基礎知識(6)—異常和異常處理

一、異常的理解及體系結構圖 1、理解 異常&#xff1a;程序運行過程中發生的不正常現象。java中的錯誤&#xff1a;   語法錯誤   運行異常   邏輯錯誤 2、體系圖 java程序在執行過程中所發生的異常分為兩類&#xff1a; Error&#xff1a;Java虛擬機無法解決的嚴重問題。…

peripheralStateNotificationCB

1 /*********************************************************************2 * fn peripheralStateNotificationCB 外圍設備 狀態 通知 回調函數3 *4 * brief Notification from the profile of a state change. 通知來自于profile的狀態改變&#xff01;5 *6 * …