成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

seanlook / 1837人閱讀

實(shí)現(xiàn)接口

要聲明實(shí)現(xiàn)接口的類,請(qǐng)?jiān)陬惵暶髦邪?b>implements子句,你的類可以實(shí)現(xiàn)多個(gè)接口,因此implements關(guān)鍵字后面跟著由類實(shí)現(xiàn)的接口的逗號(hào)分隔列表,按照慣例,如果有extends子句,則implements子句緊跟其后。

樣例接口,Relatable

考慮一個(gè)定義如何比較對(duì)象大小的接口。

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);
}

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

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

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

實(shí)現(xiàn)Relatable接口

這是在創(chuàng)建對(duì)象部分中展現(xiàn)的Rectangle類,為實(shí)現(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;               
    }
}

因?yàn)?b>RectanglePlus實(shí)現(xiàn)了Relatable,所以可以比較任何兩個(gè)RectanglePlus對(duì)象的大小。

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/72881.html

相關(guān)文章

  • Java? 教程(目錄)

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

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

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

    taoszu 評(píng)論0 收藏0
  • Java? 教程接口

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

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

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

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

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

    RayKr 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

seanlook

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<