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

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) 編程基礎(chǔ)之Java的接口與內(nèi)部類視頻

編程基礎(chǔ)之Java的接口與內(nèi)部類視頻

更新時(shí)間:2020-06-30 14:36:30 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1954次

在學(xué)習(xí)Android事件機(jī)制之前,有必要把相關(guān)的Java知識(shí)先進(jìn)行一下回顧。與Android事件相關(guān)的Java知識(shí)主要包括:接口、內(nèi)部類,下面講解這些知識(shí)點(diǎn)。

編程基礎(chǔ)之Java的接口與內(nèi)部類視頻

1、接口

Java下接口主要描述類應(yīng)該具備什么功能。接口是一種契約機(jī)制,描述了相關(guān)的類應(yīng)遵循一定的、統(tǒng)一的格式定義。在Java中,接口通過關(guān)鍵字Interface定義。例如下面的接口定義:

package?com.zhangw.crazyandroid;
public?interface?UserDao?{
????String?findUserName(String?id);
}

該接口描述了這樣一種契約,實(shí)現(xiàn)該接口的類必須提供findUserName方法,該方法必須要有一個(gè)String類型的參數(shù)。

為了讓類實(shí)現(xiàn)某個(gè)接口,只需要一下兩步:

通過Implements聲明某個(gè)類實(shí)現(xiàn)特定的接口;

對(duì)接口的中所有方法進(jìn)行定義;

下面給出UserDao接口的實(shí)現(xiàn),如下所示:

package?com.zhangw.crazyandroid;
public?class?UserTableDao?implements?UserDao?{
????public?String?findUserName(String?id)?{
????????return?"zhangw";
????}
}

這里需要注意的是,在接口中,不用把方法申明為public,因?yàn)榻涌谥械姆椒ǘ际莗ublic。但是在實(shí)現(xiàn)接口時(shí),必須在實(shí)現(xiàn)類里面將對(duì)應(yīng)的方法申明為public,否則方法默認(rèn)為包可見。

關(guān)于接口還有幾點(diǎn)要說明:

接口不是類,不能用new實(shí)例化;

可以申明接口的變量,但是接口的變量必須復(fù)制具體實(shí)現(xiàn)類的對(duì)象;

可以使用instance檢查一個(gè)類是否實(shí)現(xiàn)了特定的接口,如下所示:

if(userDao?instanceof?UserDao){
???Log.d("接口測試",?"是UserDao接口");
}

類似于類的繼承關(guān)系,接口也可以進(jìn)行繼承擴(kuò)展;

一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,實(shí)現(xiàn)的多個(gè)接口之間用,分割

接口中可以定義常量

在Java SE 8中,接口可以定義靜態(tài)方法,但這樣的設(shè)計(jì)有悖于接口抽象機(jī)制的初衷,不推薦。

接口可以通過關(guān)鍵字default聲明默認(rèn)方法,提供默認(rèn)實(shí)現(xiàn),這樣實(shí)現(xiàn)接口的開發(fā)人員可以只覆蓋需要的方法,例如下面代碼所示:

package?com.salary.myjava;
public?interface?UserDao?{
????String?queryNameById(String?id);
????default?String?queryOrgById(String?id){return?id;};
}

2、內(nèi)部類

內(nèi)部類是定義在一個(gè)類里面的類,內(nèi)部類有以下特點(diǎn):

內(nèi)部類方法可以訪問外部類的數(shù)據(jù)

內(nèi)部類可以對(duì)同一個(gè)包中的其他類隱藏起來;

通常使用匿名內(nèi)部類實(shí)現(xiàn)回調(diào)機(jī)制

下面給出一個(gè)內(nèi)部類的樣例

package?com.salary.myjava;
public?class?MyWindow?{
????private?String?title?=?"111";
????private?String?name?=?"222";
????//?內(nèi)部接口
????public?interface?StartListener{
????????String?getWindowTitle();
????}
????//?內(nèi)部類
????public?class?UserDaoImp?implements?UserDao{
????????public?String?queryNameById(String?id){
????????????return?MyWindow.this.title;
????????}
????}
????public?void?load(){
????????UserDao?userDao?=?new?UserDaoImp();
????????System.out.println(userDao.queryNameById("111"));
????}
????public?void?load2(){
????????//??匿名類
????????StartListener?startListener?=?new?StartListener(){
????????????public?String?getWindowTitle(){
????????????????return?MyWindow.this.title;
????????????}
????????};
????????System.out.print(startListener.getWindowTitle());
????}
}

這里我們定義了UserDaoImp類,該類是MyWindow的內(nèi)部類,此外我們還在MyWinow類的內(nèi)部定了一個(gè)接口StartListener,并在load2方法中,通過一個(gè)匿名類實(shí)現(xiàn)了該接口。

這里需要說明的是:

內(nèi)部類主要用于方法的回調(diào)處理;

在內(nèi)部類可以通過<外部類的名稱.this>訪問外部類的this指針。

在類的內(nèi)部也可以定義接口,如上所StartListener

編程基礎(chǔ)之Java的接口與內(nèi)部類視頻

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“編程基礎(chǔ)之Java的接口與內(nèi)部類視頻”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 亚洲日日操 | 免费精品美女久久久久久久久久 | 99伊人| 女性一级全黄生活片 | 久久国产一久久高清 | 亚洲精品视频在线看 | 亚洲国内精品久久 | 午夜欧美精品久久久久久久 | 国产全黄a一级毛片视频 | 国产成人精品综合久久久软件 | 亚洲美女在线播放 | 国产欧美精品一区二区 | 中文字幕最新在线 | 五月天免费在线视频 | 欧美日本一区亚洲欧美一区 | 免费看曰批女人爽的视频网址 | 奇米综合 | www四虎 | 台湾一级毛片免费播放 | 久久动漫精品 | 色淫影院 | 婷婷色中文网 | 久久99久久99精品免观看麻豆 | 99精品国产在这里白浆 | 麻豆精品久久精品色综合 | 中文字幕欧美日韩 | 日本色午夜 | 日本黄页免费 | 伊人天伊人天天网综合视频 | 9久热这里只有精品视频在线观看 | 人人澡人人人人夜夜爽 | 欧美视频第一区 | 在线观看国产一区二区三区99 | 羞羞的视频网站 | 色偷偷青青草原在线视频 | 亚洲视频三区 | 国产一区二区精品久久 | 久久久久久人精品免费费看 | 久久国产成人精品国产成人亚洲 | 超清乱人伦中文视频在线 | 一级片在线观看视频 |