大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 實例分析Java接口實現

實例分析Java接口實現

更新時間:2020-10-16 17:35:20 來源:動力節點 瀏覽1386次

說到Java接口實現,我們先來通過一個例子來明確Java中接口的概念,這個例子是"比較",很多對象都可以比較,對于求最大值、求最小值、排序的程序而言,它們其實并不關心對象的類型是什么,只要對象可以比較就可以了,或者說,它們關心的是對象有沒有可比較的能力。


Java API中提供了Comparable接口,以表示可比較的能力,但它使用了泛型,而我們還沒有介紹泛型,所以本節,我們自己定義一個Comparable接口,叫MyComparable。

現在,首先,我們來定義這個java接口,代碼如下:

public interface MyComparable {

int compareTo(Object other);

}


解釋一下:

Java使用interface這個關鍵字來聲明接口,修飾符一般都是public。

interface后面就是接口的名字MyComparable。

接口定義里面,聲明了一個方法compareTo,但沒有定義方法體,接口都不實現方法。接口方法不需要加修飾符,加與不加都是public的,不能是別的修飾符。

再來解釋一下compareTo方法:

方法的參數是一個Object類型的變量other,表示另一個參與比較的對象。


第一個參與比較的對象是自己

返回結果是int類型,-1表示自己小于參數對象,0表示相同,1表示大于參數對象

接口與類不同,它的方法沒有實現代碼。定義一個接口本身并沒有做什么,也沒有太大的用處,它還需要至少兩個參與者,一個需要實現接口,另一個使用接口,我們先來說說如何實現接口:

類可以實現接口,表示類的對象具有接口所表示的能力。我們來看一個例子,以前面介紹過的Point類來說明,我們讓Point具備可以比較的能力,Point之間怎么比較呢?我們假設按照與原點的距離進行比較,下面是Point類的代碼:

public class Point implements MyComparable {

private int x;

private int y;

public Point(int x, int y) {

this.x = x;

this.y = y;

}

public double distance(){

return Math.sqrt(x*x+y*y);

}

@Override

public int compareTo(Object other) {

if(!(other instanceof Point)){

throw new IllegalArgumentException();

}

Point otherPoint = (Point)other;

double delta = distance() - otherPoint.distance();

if(delta<0){

return -1;

}else if(delta>0){

return 1;

}else{

return 0;

}

}

@Override

public String toString() {

return "("+x+","+y+")";

}

}


我們解釋一下:

Java使用implements這個關鍵字表示實現接口,前面是類名,后面是接口名。

實現接口必須要實現接口中聲明的方法,Point實現了compareTo方法。

我們再來解釋一下Point的compareTo實現:

Point不能與其他類型的對象進行比較,它首先檢查要比較的對象是否是Point類型,如果不是,使用throw拋出一個異常,異常我們還沒提到,后續文章講解,此處可以忽略。

如果是Point類型,使用強制類型轉換將Object類型的參數other轉換為Point類型的參數otherPoint。

這種顯式的類型檢查和強制轉換是可以使用泛型機制避免的,后續文章我們再介紹泛型。

一個類可以實現多個接口,表明類的對象具備多種能力,各個接口之間以逗號分隔,語法如下所示:

public class Test implements Interface1, Interface2 {

....

}


本文我們通過實例粗淺的了解了Java接口實現的相關知識,實際上Java接口實現是一節需要耗時很長的課程,我們只是剛剛開始,接下來的課程可以到本站的Java零基礎入門教程中自主學習,好風憑借力,揚帆正當時,相信你一定能攻克難關,學有所成!


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产视频观看 | 99视频全部免费精品全部四虎 | 国产精品入口麻豆高清在线 | 欧美理论片大全在线观看 | 中文字幕亚洲高清综合 | 黄色一级片a | 麻豆精品久久久 | 99国产超薄丝袜足j在线观看 | 国产欧美久久一区二区 | 日韩欧美一区二区在线观看 | 免费看一级特黄a大片 | 亚洲天天在线日亚洲洲精 | 日本精品二区 | 亚洲福利视频精选在线视频 | 亚洲欧美综合另类 | 久久久久无码国产精品一区 | 欧美大片日韩精品四虎影视 | 国内精品免费视频 | 亚洲视频二 | 九月婷婷亚洲综合在线 | 青青草国产97免久久费观看 | 日本综合在线 | 在线亚洲欧洲国产综合444 | 国产一级黄色毛片 | 国内精品久久久久影院免费 | 免费超级淫片日本高清视频 | 爱色aⅴ| 免费不卡视频 | 看全色黄大色大片免费久久久 | 国产福利在线观看第二区 | 久久精品免视看国产盗摄 | 久草欧美视频 | 免费国产午夜在线观看 | 精品综合久久久久久88小说 | 久久伊人免费视频 | 国产精品深爱在线 | 亚洲欧美日韩一级特黄在线 | 成人欧美在线视频 | 中文字幕久久久久久精 | 免费一级毛片清高播放 | 国产精品成人亚洲 |