版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)10 抽象類(lèi)和接口一、實(shí)驗(yàn)名稱(chēng)和性質(zhì)所屬課程Java語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)名稱(chēng)抽象類(lèi)和接口實(shí)驗(yàn)學(xué)時(shí)2實(shí)驗(yàn)性質(zhì)驗(yàn)證 綜合設(shè)計(jì)必做/選做必做 選做二、實(shí)驗(yàn)?zāi)康?. 設(shè)計(jì)并使用抽象類(lèi);2.學(xué)習(xí)如何定義接口,掌握接口的實(shí)現(xiàn)方式,使用實(shí)現(xiàn)了接口的類(lèi);3.理解接口與抽象類(lèi)的區(qū)別。 三、實(shí)驗(yàn)內(nèi)容1.設(shè)計(jì)和實(shí)現(xiàn)一個(gè)Soundable接口,該接口具有發(fā)聲功能,同時(shí)還能調(diào)節(jié)聲音大小。Soundable接口的這些功能將會(huì)由3種聲音設(shè)備來(lái)具體實(shí)現(xiàn),他們分別是收音機(jī)Radio、隨身聽(tīng)Walkman和手機(jī)Mobilephone。同時(shí)需要設(shè)計(jì)一個(gè)應(yīng)用程序類(lèi)來(lái)使用這些實(shí)現(xiàn)了Soundable接口的聲音設(shè)備類(lèi)。在程序運(yùn)行時(shí),先詢(xún)
2、問(wèn)用戶(hù)想聽(tīng)那種設(shè)備發(fā)出聲音,然后程序就會(huì)按照該設(shè)備的工作方式來(lái)發(fā)出聲音(驗(yàn)證性實(shí)驗(yàn))。2.程序會(huì)要求用戶(hù)以規(guī)范的格式輸入自己的生日日期,然后將使用Date類(lèi)和Calendar類(lèi)中的方法計(jì)算出用戶(hù)的生日是星期幾,用戶(hù)的年齡以及出生的年份是否是閏年。四、實(shí)驗(yàn)的軟硬件環(huán)境要求硬件環(huán)境要求:PC計(jì)算機(jī);內(nèi)存512MB以上使用的軟件名稱(chēng)、版本號(hào)以及模塊:操作系統(tǒng):Windows XP或Windows 7軟件: JDK 7.0;Eclipse五、知識(shí)準(zhǔn)備前期要求掌握的知識(shí):了解Java中的抽象類(lèi)和接口。實(shí)驗(yàn)相關(guān)理論或原理:1、Java接口和Java抽象類(lèi)最大的一個(gè)區(qū)別,就在于Java抽象類(lèi)可以提供某些方法
3、的部分實(shí)現(xiàn),而Java接口不可以,這大概就是Java抽象類(lèi)唯一的優(yōu)點(diǎn)吧,但這個(gè)優(yōu)點(diǎn)非常有用。如果向一個(gè)抽象類(lèi)里加入一個(gè)新的具體方法時(shí),那么它所有的子類(lèi)都將得到了這個(gè)新方法,而Java接口做不到這一點(diǎn),如果向一個(gè)Java接口里加入一個(gè)新方法,所有實(shí)現(xiàn)這個(gè)接口的類(lèi)就無(wú)法成功通過(guò)編譯了,因?yàn)槟惚仨氉屆恳粋€(gè)類(lèi)都再實(shí)現(xiàn)這個(gè)方法才行,這顯然是Java接口的缺點(diǎn)。2、一個(gè)抽象類(lèi)的實(shí)現(xiàn)只能由這個(gè)抽象類(lèi)的子類(lèi)給出,也就是說(shuō),這個(gè)實(shí)現(xiàn)處在抽象類(lèi)所定義出的繼承的等級(jí)結(jié)構(gòu)中,而由于Java語(yǔ)言的單繼承性,所以抽象類(lèi)作為類(lèi)型定義工具的效能大打折扣。六、驗(yàn)證性實(shí)驗(yàn)實(shí)驗(yàn)要求通過(guò)編寫(xiě)程序Birthday.java,編輯、運(yùn)行
4、后輸出結(jié)果如圖10.1所示:10.1程序運(yùn)行結(jié)果 實(shí)驗(yàn)程序代碼/Birthday.javaimport java.util.*; / Date,Calendar,Scannerimport java.text.*; / SimpleDateFormatpublic class Birthday public static void main(String args) throws ParseException String birthday, dayOfWeek= ;Date date;Calendar calendar;Scanner scanner = new Scanner(System
5、.in);System.out.println(請(qǐng)輸入你的生日日期:yyyy-MM-dd);birthday = scanner.next( );/創(chuàng)建一個(gè)日期格式對(duì)象 SimpleDateFormat dateFormat = new SimpleDateFormat(yyyy-MM-dd);/獲得一個(gè)包含當(dāng)前日期和時(shí)間的Calendar子類(lèi)的實(shí)例 calendar = Calendar.getInstance();int currentYear = calendar.get(Calendar.YEAR);/按輸入的birthday產(chǎn)生一個(gè)Date對(duì)象date = dateFormat.pa
6、rse(birthday);/將date對(duì)象的值傳遞給calendar對(duì)象calendar.setTime(date); int days = calendar.get(Calendar.DAY_OF_WEEK); switch( days ) case 1: dayOfWeek = 星期日;break; case 2: dayOfWeek = 星期一;break; case 3: dayOfWeek = 星期二;break; case 4: dayOfWeek = 星期三;break; case 5: dayOfWeek = 星期四;break; case 6: dayOfWeek = 星期
7、五;break; case 7: dayOfWeek = 星期六;break; System.out.println(你的生日是: + dayOfWeek);int birthYear = calendar.get(Calendar.YEAR);if (birthYear%4=0)&(birthYear%100!=0)|(birthYear%400=0) System.out.println(birthYear + 年: 是閏年); else System.out.println(birthYear + 年: 不是閏年); int age = currentYear-birthYear; Sy
8、stem.out.println(你現(xiàn)在是: + age + 歲); 六、 設(shè)計(jì)性實(shí)驗(yàn)1實(shí)驗(yàn)要求新建、編譯、運(yùn)行InterfaceTest.java文件,實(shí)驗(yàn)結(jié)果如圖10.2所示:10.2運(yùn)行結(jié)果圖實(shí)驗(yàn)程序代碼/InterfaceTest.javaimport java.util.Scanner;代碼1 /完善此處代碼,定義Soundable接口,包含increaseVolume( ) 、decreaseVolume( ) 、stopSound( ) 、 playSound( )四個(gè)方法。class Radio implements Soundable public void increase
9、Volume( ) System.out.println(增大收音機(jī)音量); public void decreaseVolume( ) System.out.println(減小收音機(jī)音量); public void stopSound( ) System.out.println(關(guān)閉收音機(jī)); public void playSound( ) System.out.println(收音機(jī)播放廣播); class Walkman implements Soundable 代碼2 /完善此處代碼class Mobilephone implements Soundable public void
10、 increaseVolume( ) System.out.println(增大手機(jī)音量); public void decreaseVolume( ) System.out.println(減小手機(jī)音量); public void stopSound( ) System.out.println(關(guān)閉手機(jī)); public void playSound( ) System.out.println(手機(jī)發(fā)出來(lái)電鈴聲); class People private String name; private int age; public void listen(Soundable s) s.play
11、Sound( ); public class InterfaceTest public static void main(String args) int i; People sportsman = new People( ); Scanner scanner = new Scanner(System.in); Soundable soundDevice = new Soundable3; /往聲音設(shè)備數(shù)組中放入能發(fā)聲的設(shè)備 soundDevice0 = new Radio( ); soundDevice1 = new Walkman( ); soundDevice2 =代碼3;/創(chuàng)建手機(jī)對(duì)象
12、并賦值給soundDevice2 System.out.println(你想聽(tīng)什么? 請(qǐng)輸入選擇:0-收音機(jī) 1-隨聲聽(tīng) 2-手機(jī)); i = scanner.nextInt( ); /開(kāi)始聽(tīng)聲音 sportsman.listen(soundDevicei); soundDevicei.increaseVolume( ); soundDevicei.stopSound(); /調(diào)用stopSound( )方法 2、實(shí)驗(yàn)要求(1) 仔細(xì)閱讀程序清單,完成代碼1代碼2 。 (2) 為程序增加一個(gè)摩托車(chē)類(lèi)Motorcycle,該類(lèi)也實(shí)現(xiàn)了Transport接口。 程序參考代碼 該程序共有5個(gè)文件:T
13、ransport.java,Car.java,Ship.java,Plane.java,Interfacetest.java/Transport.javapublic interface Transport public void travel(); public void stop(); /Car.javapublic class Car implements Transport public void travel() System.out.println(小汽車(chē)在公路上行駛); public void stop() System.out.println(小汽車(chē)停止行駛); /Ship.j
14、avapublic class Ship implements Transport public void travel() System.out.println(輪船在海上航行); public void stop() System.out.println(輪船停止航行); /Plane.javapublic class Plane implements Transport public void travel() System.out.println(飛機(jī)在空中飛行); public void stop() System.out.println(飛機(jī)停止飛行); / InterfaceTest.javaimport java.util.Scanner;class People public void drive(Transport s) (); public class InterfaceTest public static void main(String args) int i; People driver = new People(); Scanner scanner = new Scanner(System.in); Transport transport = new Tra
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年湖北城市建設(shè)職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- 二零二五年度智能汽車(chē)典當(dāng)借款管理協(xié)議3篇
- 2020中考英語(yǔ)復(fù)習(xí)方案第一篇教材考點(diǎn)梳理第20課時(shí)Units4九上課件牛津譯林版
- 義務(wù)教育課程標(biāo)準(zhǔn)道德與法治
- 2024年瀘州醫(yī)療器械職業(yè)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- 二零二五年度綠色農(nóng)產(chǎn)品倉(cāng)儲(chǔ)與銷(xiāo)售合作合同3篇
- 2024年阜新市婦幼保健院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 2024年江西陶瓷工藝美術(shù)職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- 2024年江蘇農(nóng)牧科技職業(yè)學(xué)院高職單招職業(yè)技能測(cè)驗(yàn)歷年參考題庫(kù)(頻考版)含答案解析
- 2024年昆明工業(yè)職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)驗(yàn)歷年參考題庫(kù)(頻考版)含答案解析
- 小紅書(shū)種草營(yíng)銷(xiāo)師(初級(jí))認(rèn)證考試真題試題庫(kù)(含答案)
- 中學(xué)學(xué)校裝修改造工程施工組織設(shè)計(jì)方案
- 幼兒園反恐防暴技能培訓(xùn)內(nèi)容
- 食品企業(yè)質(zhì)檢員聘用合同
- 中醫(yī)診所內(nèi)外部審計(jì)制度
- 2024年WPS計(jì)算機(jī)二級(jí)考試題庫(kù)350題(含答案)
- 2024年5G網(wǎng)絡(luò)覆蓋工程分包合同
- 2025屆北京市海淀區(qū)交大附中高一物理第一學(xué)期期末復(fù)習(xí)檢測(cè)試題含解析
- 自然辯證法學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 2024年國(guó)家危險(xiǎn)化學(xué)品經(jīng)營(yíng)單位安全生產(chǎn)考試題庫(kù)(含答案)
- 護(hù)理員技能培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論