1. 程式人生 > >java學習筆記----回撥的實現

java學習筆記----回撥的實現

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的圖片載入了
顯示介面