亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Java? 教程(實現(xiàn)接口)

seanlook / 1890人閱讀

實現(xiàn)接口

要聲明實現(xiàn)接口的類,請在類聲明中包含implements子句,你的類可以實現(xiàn)多個接口,因此implements關(guān)鍵字后面跟著由類實現(xiàn)的接口的逗號分隔列表,按照慣例,如果有extends子句,則implements子句緊跟其后。

樣例接口,Relatable

考慮一個定義如何比較對象大小的接口。

public interface Relatable {
        
    // this (object calling isLargerThan)
    // and other must be instances of 
    // the same class returns 1, 0, -1 
    // if this is greater than, 
    // equal to, or less than other
    public int isLargerThan(Relatable other);
}

如果你希望能夠比較類似對象的大小,無論它們是什么,實例化它們的類都應(yīng)該實現(xiàn)Relatable。

如果有某種方法來比較從類中實例化的對象的相對“大小”,任何類都可以實現(xiàn)Relatable,對于字符串,它可以是字符數(shù),對于書籍,它可以是頁數(shù),對于學(xué)生來說,它可能是重量,等等。對于平面幾何對象,面積將是一個不錯的選擇(參見后面的RectanglePlus類),而體積適用于三維幾何對象,所有這些類都可以實現(xiàn)isLargerThan()方法。

如果你知道某個類實現(xiàn)了Relatable,那么你就知道可以比較從該類實例化的對象的大小。

實現(xiàn)Relatable接口

這是在創(chuàng)建對象部分中展現(xiàn)的Rectangle類,為實現(xiàn)Relatable而重寫。

public class RectanglePlus 
    implements Relatable {
    public int width = 0;
    public int height = 0;
    public Point origin;

    // four constructors
    public RectanglePlus() {
        origin = new Point(0, 0);
    }
    public RectanglePlus(Point p) {
        origin = p;
    }
    public RectanglePlus(int w, int h) {
        origin = new Point(0, 0);
        width = w;
        height = h;
    }
    public RectanglePlus(Point p, int w, int h) {
        origin = p;
        width = w;
        height = h;
    }

    // a method for moving the rectangle
    public void move(int x, int y) {
        origin.x = x;
        origin.y = y;
    }

    // a method for computing
    // the area of the rectangle
    public int getArea() {
        return width * height;
    }
    
    // a method required to implement
    // the Relatable interface
    public int isLargerThan(Relatable other) {
        RectanglePlus otherRect 
            = (RectanglePlus)other;
        if (this.getArea() < otherRect.getArea())
            return -1;
        else if (this.getArea() > otherRect.getArea())
            return 1;
        else
            return 0;               
    }
}

因為RectanglePlus實現(xiàn)了Relatable,所以可以比較任何兩個RectanglePlus對象的大小。

isLargerThan方法(在Relatable接口中定義)采用Relatable類型的對象,示例中other轉(zhuǎn)換為RectanglePlus實例,類型轉(zhuǎn)換告訴編譯器對象到底是什么,直接在other實例上調(diào)用getAreaother.getArea())將無法編譯,因為編譯器不理解other實際上是RectanglePlus的實例。
上一篇:定義接口 下一篇:將接口用作類型

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/72881.html

相關(guān)文章

  • Java? 教程(目錄)

    Java? 教程 Java教程是為JDK 8編寫的,本頁面中描述的示例和實踐沒有利用在后續(xù)版本中引入的改進。 Java教程是希望使用Java編程語言創(chuàng)建應(yīng)用程序的程序員的實用指南,其中包括數(shù)百個完整的工作示例和數(shù)十個課程,相關(guān)課程組被組織成教程。 覆蓋基礎(chǔ)知識的路徑 這些教程以書籍的形式提供,如Java教程,第六版,前往Amazon.com購買。 入門 介紹Java技術(shù)和安裝Java開發(fā)軟件并使用...

    lifesimple 評論0 收藏0
  • Java? 教程(集合介紹)

    集合介紹 本節(jié)介紹Java集合框架,在這里,你將了解集合是什么以及它們?nèi)绾问鼓愕墓ぷ鞲p松、程序更好,你將了解構(gòu)成Java集合框架的核心元素 — 接口、實現(xiàn)、聚合操作和算法。 集合 — 有時稱為容器 — 只是一個將多個元素組合到一個單元中的對象,集合用于存儲、檢索、操作和傳遞聚合數(shù)據(jù)。通常,它們代表形成自然組的數(shù)據(jù)項,例如撲克牌(卡片集合)、郵件文件夾(信件集合)或電話目錄(名稱到電話號碼的映射)...

    taoszu 評論0 收藏0
  • Java? 教程接口

    接口 軟件工程中存在許多情況,當(dāng)不同的程序員團隊同意一份合約來闡明他們的軟件如何交互時很重要,每個組都應(yīng)該能夠在不知道如何編寫其他組代碼的情況下編寫代碼,一般來說,接口就是這樣的合約。 例如,想象一個未來主義社會,計算機控制的機器人汽車在沒有人工操作員的情況下將乘客運送到城市街道,汽車制造商編寫操作汽車的軟件(當(dāng)然是Java) - 停止,啟動,加速,向左轉(zhuǎn),等等,另一個工業(yè)集團,電子制導(dǎo)儀器制造商...

    amuqiao 評論0 收藏0
  • Java? 教程(集合接口

    集合接口 核心集合接口封裝了不同類型的集合,如下圖所示,這些接口允許獨立于其表示的細節(jié)來操縱集合,核心集合接口是Java集合框架的基礎(chǔ),如下圖所示,核心集合接口形成層次結(jié)構(gòu)。 showImg(https://segmentfault.com/img/bVbntJW?w=402&h=146); Set是一種特殊的Collection,SortedSet是一種特殊的Set,依此類推,另請注意,層次結(jié)構(gòu)...

    elisa.yang 評論0 收藏0
  • Java? 教程(Queue接口

    Queue接口 Queue是在處理之前保存元素的集合,除了基本的Collection操作外,隊列還提供額外的插入、刪除和檢查操作,Queue接口如下。 public interface Queue extends Collection { E element(); boolean offer(E e); E peek(); E poll(); E remov...

    RayKr 評論0 收藏0

發(fā)表評論

0條評論

seanlook

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<