




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
接口回顧如何實(shí)現(xiàn)多態(tài)?使用多態(tài)有什么好處?抽象類的特點(diǎn)是什么?抽象方法的特點(diǎn)是什么?掌握接口基礎(chǔ)知識(shí)掌握面向接口編程的思想掌握常量接口的使用本節(jié)目標(biāo)用abstract修飾符修飾的類是抽象類。抽象類不能被實(shí)例化。抽象類中可以包含非抽象的方法。抽象方法也是用abstract來修飾。抽象方法只需要聲明,不需要實(shí)現(xiàn)。含有抽象方法的類必須聲明為抽象類,所有抽象方法被實(shí)現(xiàn)的子類才能生成對(duì)象。抽象類為什么使用接口只有抽象方法的抽象類?可以用接口來表示接口有比抽象類更好的特性:1.可以被多繼承2.設(shè)計(jì)和實(shí)現(xiàn)完全分離3.更自然的使用多態(tài)4.更容易搭建程序框架5.更容易更換實(shí)現(xiàn)
……
用接口代替這樣的抽象類,是因?yàn)椋菏裁词墙涌谡J(rèn)識(shí)一下接口必須知道的接口特性接口不可以被實(shí)例化實(shí)現(xiàn)類必須實(shí)現(xiàn)接口的所有方法實(shí)現(xiàn)類可以實(shí)現(xiàn)多個(gè)接口接口中的變量都是靜態(tài)常量publicinterfaceMyInterface
{publicvoidfoo();//其他方法}所有方法都是:publicabstract抽象類除外Java中的多繼承常作為類型使用如何使用接口用程序描述USB接口如何使用接口可以使用Java接口來實(shí)現(xiàn)
USB接口本身沒有實(shí)現(xiàn)任何功能
USB接口規(guī)定了數(shù)據(jù)傳輸?shù)囊?/p>
USB接口可以被多種USB設(shè)備實(shí)現(xiàn)編寫USB接口實(shí)現(xiàn)USB接口使用USB接口根據(jù)需求設(shè)計(jì)方法實(shí)現(xiàn)所有方法用多態(tài)的方式使用如何使用接口編碼實(shí)現(xiàn)publicclassUDiskimplementsUsbInterface{publicvoidservice(){System.out.println("連接USB口,開始傳輸數(shù)據(jù)。");}}publicinterfaceUsbInterface{/***USB接口提供服務(wù)。*/voidservice();}UsbInterfaceuDisk=newUDisk();uDisk.service();編寫接口實(shí)現(xiàn)接口使用接口實(shí)現(xiàn)接口使用的關(guān)鍵字用接口實(shí)現(xiàn)多態(tài)多個(gè)接口使用“,”分隔接口是一種約定生活中,我們使用的兩相電源插座,規(guī)定了:兩個(gè)接頭間的額定電壓兩個(gè)接頭間的距離接頭的形狀接口是一種約定面向接口編程體現(xiàn)在接口名稱和注釋上程序設(shè)計(jì)時(shí)面向接口的約定而不考慮具體實(shí)現(xiàn)有些接口只有名稱方法的實(shí)現(xiàn)方式要通過注釋來約定為什么需要常量生活中,一周有七天,如何用代碼表示?publicclassWeek{privateintdays=7;publicstaticvoidmain(String[]args){Weekw=newWeek();System.out.println("一周有"+w.days+"天");}}publicclassWeek{privateintdays=7;publicstaticvoidmain(String[]args){Weekw=newWeek();w.days++;System.out.println("一周有"+w.days+"天");}}一周有7天控制臺(tái)輸出然而,總有不盡人意的事情發(fā)生:一周有8天控制臺(tái)輸出如何保證變量的值在運(yùn)行期無法被改變?——使用常量什么是常量常量是一種標(biāo)識(shí)符,它的值在運(yùn)行期間恒定不變常量標(biāo)識(shí)符在程序中只能被引用,而不能被重新賦值常量圓周率PI圓周率PI代碼表示方式publicstaticfinaldoublePI
=3.14159265358979323846;用法publicstaticdoubletoRadians(doubleang){returnang/180.0*PI;}常量的優(yōu)點(diǎn)如果不使用常量,直接在程序中填寫數(shù)字或字符串,將會(huì)有什么麻煩?publicstaticdoubletoRadians(doubleang){returnang/180.0*3.14159265358979323846;}publicstaticdoubletoDegrees(doubleang){returnang*180.0/3.14159265358979323846;}publicstatic
finaldoublePI=3.14159265358979323846;//圓周率publicstaticdoubletoRadians(doubleang){returnang/180.0*PI;}publicstaticdoubletoDegrees(doubleang){returnang*180.0/PI;}程序的可讀性變差:用戶很難理解數(shù)字或字符串的意思程序的可維護(hù)性變差:如果數(shù)值改變,則需要在很多地方改動(dòng),既麻煩又易出錯(cuò)使用常量可以增強(qiáng)程序的可讀性、可維護(hù)性Java中常量的定義規(guī)則加入final關(guān)鍵字代表常量,加入static關(guān)鍵字代表類變量盡量使用含義直觀的常量來表示那些將在程序中多次出現(xiàn)的數(shù)字或字符串publicclassAccpStudent{publicstaticfinalintFEMALE=1;//代表女性publicstaticfinalintMALE=2;//代表男性privateintsex;//性別publicvoidsetSex(intsex){if(sex==FEMALE) System.out.println("這是一名女學(xué)生");elseif(sex==MALE) System.out.println("這是一名男學(xué)生");this.sex=sex;}}在Java接口中聲明常量在Java接口中聲明的變量在編譯時(shí)會(huì)自動(dòng)加上staticfinal的修飾符,即聲明為常量,因而Java接口通常是存放常量的最佳地點(diǎn)publicinterfaceAccpSchoolType{
publicstaticfinalStringACCP="ACCP加盟中心";
publicstaticfinalStringBENET="BENET直營中心";}publicinterfaceAccpSchoolType{StringACCP="ACCP加盟中心";StringBENET="BENET直營中心";}等同于final用法Penguin類不希望再被其他類繼承?使用final類方法不希望被重寫?使用final方法屬性值不希望被修改?使用final方法publicfinalclassPenguinextendsPet{//…}最終版的類publicfinalvoidprint(){//…}最終版的方法publicclassPenguin{finalStringhome="南極";//居住地
publicvoidsetHome(Stringname){this.home=home;//錯(cuò)誤,home不可以再次賦值}}最終版的屬性值常見錯(cuò)誤請(qǐng)指出下面代碼的錯(cuò)誤classDog{Stringname;publicDog(Stringname){=name;}}classTest{publicstaticvoidmain(String[]args){finalDogdog=newDog("歐歐");="美美";dog=newDog("亞亞");}}使用final修飾引用型變量,變量不可以再指向另外的對(duì)象使用final修飾引用型變量,變量的值是固定不變的,而變量所指向的對(duì)象的屬性值是可變的OO思想總結(jié)OO基本特征定義具體實(shí)現(xiàn)方式優(yōu)勢封裝隱藏實(shí)現(xiàn)細(xì)節(jié),對(duì)外提供公共的訪問接口屬性私有化、添加公有的setter、getter方法增強(qiáng)代碼的可維護(hù)性繼承從一個(gè)已有的類派生出新的類,子類具有父類的一般特性,以及自身特殊的特性繼承需要符合的關(guān)系:is-a1、抽象公共部分2、增強(qiáng)代碼的可復(fù)用性多態(tài)同一個(gè)接口,使用不同的實(shí)例而執(zhí)行不同操作通過Java接口/繼承來定義統(tǒng)一的接口;通過方法重寫為不同的實(shí)現(xiàn)類/子類定義不同的操作增強(qiáng)代碼的可擴(kuò)展性、可維護(hù)性練習(xí)publicinterfaceIntroduceable{publicStringdetail();publicvoidintroduction(){ detail();}privatevoidshowMessage();voidspeak();}Java接口中的方法必須是publicJava接口中不能有方法體實(shí)現(xiàn)編譯器會(huì)自動(dòng)加上public修飾符請(qǐng)指出下列Java代碼中的錯(cuò)誤。練習(xí)訓(xùn)練要點(diǎn):接口的基礎(chǔ)知識(shí)需求說明:采用面向接口編程思想顯示一封家書家書內(nèi)容包含:稱謂問候內(nèi)容祝福落款練習(xí)實(shí)現(xiàn)思路:編寫家書類H
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年兔年春節(jié)慰問信范文(6篇)
- 兒童日常推拿培訓(xùn)課件
- 江蘇省鹽城市鹽城一中、大豐中學(xué)2023-2024學(xué)年高二上學(xué)期10月聯(lián)考物理含解析
- 廣東省四會(huì)中學(xué)廣信中學(xué)2023-2024學(xué)年高一上學(xué)期第二次月考化學(xué)含答案
- 贛南師范大學(xué)《導(dǎo)游基礎(chǔ)知識(shí)應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 太原科技大學(xué)《設(shè)計(jì)與應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 石家莊醫(yī)學(xué)高等專科學(xué)校《環(huán)境分析測試技術(shù)(現(xiàn)代儀器分析)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津國土資源和房屋職業(yè)學(xué)院《建筑材料與構(gòu)造1》2023-2024學(xué)年第二學(xué)期期末試卷
- 渤海大學(xué)《工程力學(xué)(3)》2023-2024學(xué)年第二學(xué)期期末試卷
- 烏海職業(yè)技術(shù)學(xué)院《品牌系統(tǒng)識(shí)別設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年廣東廣州市高三二模高考英語試卷試題(含答案詳解)
- 下肢深靜脈血栓形成患者的護(hù)理課件
- 儀控聯(lián)鎖調(diào)試記錄
- 青島版五四制五年級(jí)下冊(cè)數(shù)學(xué)課件 求實(shí)際距離
- 智能農(nóng)業(yè)監(jiān)測系統(tǒng)設(shè)計(jì) 畢業(yè)論文
- DB2101∕T 0010-2019 沈陽市住宅建筑綠色設(shè)計(jì)標(biāo)準(zhǔn)
- 自主探究式教學(xué)活動(dòng)模式結(jié)題報(bào)告
- 企業(yè)公司組織架構(gòu)圖word模板
- 《桃樹夏季管理》ppt課件
- 管道閥門安裝方案(共14頁)
- 采油工中級(jí)工更換潛油電泵井電流卡片
評(píng)論
0/150
提交評(píng)論