java學習筆記----回撥的實現
阿新 • • 發佈:2019-01-03
java學習筆記(高琪版)
oop面向物件
回撥的實現
取自知乎 常溪玲 的解釋:
你到一個商店買東西,剛好你要的東西沒有貨,於是你在店員那裡留下了你的電話,過了幾天店裡有貨了,店員就打了你的電話,然後你接到電話後就到店裡去取了貨。在這個例子裡,你的電話號碼就叫回調函式,你把電話留給店員就叫登記回撥函式,店裡後來有貨了叫做觸發了回撥關聯的事件,店員給你打電話叫做呼叫回撥函式,你到店裡去取貨叫做響應回撥事件。
回撥函式能給出一個自己無法完成全部功能的函式一個介面,把每次變化的事件,資料等傳入主函式,使程式能適應不同的需求,更加靈活多變。
先寫一個函式實現手機解鎖的功能,其中有一步每個使用者都不同,所以先掛起。
package cn.lyr.oop.testhook;
public class UnlockMyPhone {
public static void Unlock(IPutPicture p){
//這裡需要帶入的值得語句和下面的Unlock(new Man01());合起來即為:IPutPicture p = new man01;
System.out.println("隨機產生數字");
System.out.println("數字對應方位");
//這裡把使用者的9張圖放入對應的數組裡
p.put();
System.out .println("顯示介面");
}
寫一個介面,作用是載入不同使用者的圖片。為介面寫了兩個使用者的類,這兩個類實現了介面的功能。
package cn.lyr.oop.testhook;
public class PutPicture {
}
interface IPutPicture {
void put();
}
class Man01 implements IPutPicture{
@Override
public void put() {
// TODO Auto-generated method stub
System.out.println("把這個Man01的圖片載入了" );
}
}
class Man02 implements IPutPicture{
@Override
public void put() {
// TODO Auto-generated method stub
System.out.println("把這個Man02的圖片載入了");
}
}
主函式
public static void main(String[]args){
Unlock(new Man01());
}
主類中:
“public static void Unlock(IPutPicture p){
//這裡需要帶入的值得語句和下面的Unlock(new Man01());合起來即為:IPutPicture p = new man01; ”
用了介面(繼承抽象類也可以)實現了將子類調入主程式中,並不管iputpicture是什麼,由實現他的子類重寫方法實現。
println:
隨機產生數字
數字對應方位
把這個Man01的圖片載入了
顯示介面