Android開發(fā)(Java部分)——接口的定義及數(shù)據(jù)回調(diào)

接口:

一套協(xié)議,一套行為規(guī)范

使用interface表示定義一個接口
接口也可以繼承多個接口(多個接口之間用逗號隔開)
接口內(nèi)部元素:
?1.接口不能被實例化(沒有構造方法)
?2.定義變量(只能是靜態(tài)成員變量)(默認修飾符為public static final)
?3.抽象方法:不需自己實現(xiàn),誰用誰去實現(xiàn)(默認修飾符為public abstract)
???????使用implements實現(xiàn)接口 必須實現(xiàn)接口里定義的方法
?4.內(nèi)部接口


Datainteraction.java
//用這方法代替枚舉
interface Season {
    int SPRING = 1;
    int SUMMER = 2;
    int AUTOM = 3;
    int WINTER = 4;
}
    
interface t2 {
        
}

public interface DataInteraction {
    interface Input(){
        void input();
    }
    
    interface Output(){
        void output();
    }
}

Macbook.java
//需要和外部設備進行數(shù)據(jù)交互 必須實現(xiàn)數(shù)據(jù)交互的接口

public class Macbook implements DataInteraction.Output, DataInteraction.Input {
    public void input() {
        System.out.println("安全輸入");
    }

    public void output() {
        System.out.println("急速輸出");
    }
}

Printer.java
public class Printer implements DataInteraction.Input{
    public void input() {
        System.out.println("從電腦接收數(shù)據(jù)");
    }
    
    public void printf() {
        System.out.println("打印機開始打印數(shù)據(jù)");
    }
}

接口實現(xiàn)數(shù)據(jù)回調(diào)

MyClass.java
public class MyClass {
    public static void main(String[] args){
        SplashView sv = new SplashView;
    }
}

SplashView.java
//5.使用者必須實現(xiàn)這個接口
public class SplashView implements Http.OnHttpFinishListener {
    public SplashView() {
        //開始下載數(shù)據(jù)
        Http http = new Http();
        //7.必須傳遞當前對象給功能類
        http.setListener(this);
        //8.調(diào)用功能類 完成功能
        http.getData(url: "www.baidu.com");
    }
    
    //6.必須實現(xiàn)接口內(nèi)部的所有抽象方法
    public void onSuccess(String img) {
        System.out.println("展示圖片"+ img);
    }

    public void onSuccess(String err) {
        System.out.println("下載失敗"+ err);        
    }
}

Http.java
public class Http {
    //2.定義一個變量接收誰來監(jiān)聽網(wǎng)絡下載完畢的事件
    private OnHttpFinishListener listener;
    public void getData(String url){
        System.out.println("開始下載");
        System.out.println("圖片下載完畢");

        //3.任務結束 回調(diào)數(shù)據(jù)
        listener.onSuccess(img: 圖片下載成功);
    }

    //4.提供set方法保存當前的監(jiān)聽者
    public void setListener(OnHttpFinishListener listener) {
        this.listener = listener;
    }

    //1.定義一個接口 統(tǒng)一返回數(shù)據(jù)的方式
    public interface OnHttpFinishListener{
        void onSuccess(String img);
        void onFailure(String err);
    }
}
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 小編費力收集:給你想要的面試集合 1.C++或Java中的異常處理機制的簡單原理和應用。 當JAVA程序違反了JA...
    八爺君閱讀 5,206評論 1 114
  • Win7下如何打開DOS控制臺? a:開始--所有程序--附件--命令提示符 b:開始--搜索程序和文件--cmd...
    逍遙嘆6閱讀 1,708評論 4 12
  • Java類型系統(tǒng)Java語言基礎數(shù)據(jù)類型有兩種:對象和基本類型(Primitives)。Java通過強制使用靜態(tài)類...
    luffier閱讀 499評論 0 1
  • 一:java概述:1,JDK:Java Development Kit,java的開發(fā)和運行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,812評論 0 11
  • 本文出自 Eddy Wiki ,轉(zhuǎn)載請注明出處:http://eddy.wiki/interview-java.h...
    eddy_wiki閱讀 1,272評論 0 5

友情鏈接更多精彩內(nèi)容