舉例子之前友情提示,需要有委託的基礎:
定義乙個貓的類:
貓 cat(名字,顏色,建構函式,再定義乙個貓進來的方法(相當於被觀察者狀態發生改變))
貓進來的方法:
public
void
catcoming
(mouse mouse1,
mouse mouse2)
定義乙個老鼠的類:
老鼠 mouse(名字,顏色,建構函式,再定義乙個老鼠逃跑(run)的方法(相當於觀察者相應被觀察者改變的狀態))
在main中:
cat cat =
new cat (
"白貓",「」黑色「」);
mouse mouse1 =
newmouse
("黑鼠"
,"白色");
mouse mouse2 =
newmouse
(「黃鼠」,「紅色」)
;cat.
catcoming
(mouse1,mouse2)
;//貓的狀態發生改變
但是上面的程式有乙個致命的缺點:
當再增加乙個老鼠的時候,不僅需要在main中新增,還需要修改cat類中catcoming這個方法的引數和具體實現
可以在cat類中定義乙個委託:
public action catcome;
//定義了個委託 發布了個訊息
然後修改catcoming:
public
void
catcoming()
//貓進屋的函式
}
最後main中應該為這樣:
cat cat =
new cat (
"白貓",「」黑色「」);
mouse mouse1 =
newmouse
("黑鼠"
,"白色");
cat.catcom+
=mouse1.
run();
//註冊 訂閱這個訊息
mouse mouse2 =
newmouse
(「黃鼠」,「紅色」)
;cat.catcom+
=mouse2.
run();
//註冊
cat.
catcoming()
;
ps
①假如當mouse1不想相應了 則
cat.catcom-
=mouse1.
run(
);
②可以直接在run方法裡 新增cat cat的引數,直接在run裡註冊
可以減少**
③可以用事件代替委託
public
event action catcome;
//宣告事件
與委託區別在於:
委託可以在外邊直接呼叫這個註冊!這還是比較危險的
而事件只有在類內 才可以呼叫
GIT自用筆記
分為工作區,暫存區,倉庫。一步步儲存。cat 檔名 檢視檔案內容 rm 檔名 刪除檔案 cd 資料夾 開啟資料夾 ls 列出資料夾下的目錄git config global user.name your name git config global user.email email example....
自用筆記37 白給
給你乙個僅由數字 6 和 9 組成的正整數 num。你最多只能翻轉一位數字,將 6 變成 9,或者把 9 變成 6 請返回你可以得到的最大數字。示例 1 輸入 num 9669 輸出 9969 解釋 改變第一位數字可以得到 6669 改變第二位數字可以得到 9969 改變第三位數字可以得到 9699...
自用筆記 揹包系統
前提的知識 ugui unity框架 jason配置表 file檔案儲存和讀取 需求分析 揹包中顯示玩家擁有的物品資訊 需要顯示資訊就需要讀取資料 資料從 來?配置表 jason 玩家資訊 檔案讀取file jason 獲取資料到面板上 ugui c 的邏輯 基本知識點 這裡的主題是為了講揹包,所以...