




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Java程序設(shè)計(jì)實(shí)驗(yàn)四:繼承、多態(tài)與接口1 .提交期限和方法期限:第 12 周周五(2021-11-27 ) 23: 59 pm方法:由學(xué)習(xí)委員收集所有學(xué)生的實(shí)驗(yàn)報(bào)告,以電子檔的形式提交給任課教師(發(fā)郵 箱:).2 .實(shí)驗(yàn)?zāi)康募耙笳莆認(rèn)ava的根本數(shù)據(jù)類型、運(yùn)算符、表達(dá)式和語句.運(yùn)行環(huán)境:開發(fā)環(huán)境:Eclipse3 .實(shí)驗(yàn)內(nèi)容及題目3.11子類的繼承與方法的重寫(1) 中國人與美國人】 在Eclipse 中創(chuàng)立名為Lab4的新工程,編寫程序模擬中國人、美國人、北京人.除主類外,程序中有 4個(gè)類:People、ChinaPeople、AmericanPeople 和BeijingPeople
2、類.要求如下:(2) People 類有權(quán)限是 protected 的 double 型成員變量:height 和 weight ,以及 public void speakHello( )、public void averageHeight( )和 public void averageWeight( ) 方法.(3) ChinaPeople 類是 People 類的子類,新增了 public void chinaGongfu() 方法. 要求 ChinaPeople 重寫父類的 public void speakHello ()、public void averageHeight() 和 p
3、ublic void averageWeight() 方法.(4) AmericanPeople 類是 People 的子類,新增 public void americanBoxing( )方法. 要 求 AmericanPeople 重寫 父類的 public void speakHello( ) 、 public void averageHeight() 和 public void averageWeight() 方法.(5) BeijingPeople 類是 ChinaPeople 的子類,新增 public void beijingOpera() 方 法.要求 BeijingPeopl
4、e重寫父類的public void speakHello( )、public voidaverageHeight() 和 public void averageWeight() 方法.運(yùn)行效果如以下圖.按以下代碼模板要求,將【代碼】局部替換為Java程序代碼.局部代碼已給出:176 cm1.3.2成員變量隱藏與super關(guān)鍵字【題2銀行與利息】在 Lab4工程中,編寫程序.驗(yàn)證教材第5章81頁的【例5-7假設(shè)銀行Bank已經(jīng)有了按整年year計(jì)算利息的一般方法,其中 year只能取正整 數(shù).如按整年計(jì)算的方法:Double compuerInterest()interest = year *
5、* savedMoney;return interest;建設(shè)銀行的天利息計(jì)算公式為:dayInterst =天數(shù)* *存款數(shù)大連銀行的天利息計(jì)算公式為:dayInterst =天數(shù)* *存款數(shù)參照例子中的建設(shè)銀行或大連銀行,再編寫一個(gè)商業(yè)銀行,讓程序輸出8000元存在商業(yè)銀行8年零236天的利息.【知識點(diǎn)】1 .成員變量隱藏和方法重寫;2 . super關(guān)鍵字.【實(shí)驗(yàn)指導(dǎo)】1 .當(dāng)super調(diào)用被隱藏的方法時(shí),該方法中出現(xiàn)的成員變量是被子類隱藏的成員變量 或繼承的成員變量.2 .子類不繼承父類的構(gòu)造方法,因此,子類在其構(gòu)造方法中需使用super來調(diào)用父類的構(gòu)造方法,而且 super必須是子類
6、構(gòu)造方法中的頭一條語句,即如果在在子類的 構(gòu)造方法中,沒有明顯地寫出super關(guān)鍵字來調(diào)用父類的某個(gè)構(gòu)造方法,那么默認(rèn)有 “ super();.3 .類中定義多個(gè)構(gòu)造方法時(shí),建議包括一個(gè)不帶參數(shù)的構(gòu)造方法,以便子類可以省略 “super();【學(xué)生解答】(1)商業(yè)銀行的程序代碼:class Bankint savedMoney;int year;double interest ;public double computerInterest() interest = year * savedMoney; return interest ;class BusinessBank extends Ba
7、nk double year ;public double computerInterest() =(int ) year;double remainNumber = year - ( int )year ; int day = ( int )( remainNumber *1000); interest = ()+ day* savedMoney;"%d元存在商業(yè)銀行 抨零狀的利息:.2f元n" ,savedMoney, day, interest );return interest ;public class Example5_2 public static void
8、main(String 口 args) BusinessBank bank1 = new BusinessBank(); =8000;=;double interest1 =(); (2)商業(yè)銀行的運(yùn)行結(jié)果截圖:3.3 接口【題3歌手大賽與學(xué)生體重評估】在Lab4工程中,編寫程序,要求模擬歌手大賽計(jì)算 選手成績和評估班級學(xué)生體重.歌手大賽計(jì)算選手成績的方法是去掉一個(gè)最高分和一個(gè)最低分后再計(jì)算平均分,而學(xué)校評估一個(gè)班級的學(xué)生的體重時(shí),是計(jì)算全班同學(xué)的平均 體重.SongGame類和School類都實(shí)現(xiàn)了 ComputerAverage接口,但實(shí)現(xiàn)方式不同. ComputerAverage類和Es
9、timator主類的局部代碼已給出(如下),按以下代碼模板要求,將【代碼】局部替換為Java程序代碼,并寫出 SongGam緩和School類./public interface ComputerAverage/ 接口public double average(double x);)/public class Estimator /主類public static void main(String args) double a = , ;double b = 56, , 65, 50, , , 70, 49, 66, 62, 46;ComputerAverage computer;compute
10、r = new SongGame();/computer 調(diào)用average(double x) 方法,將數(shù)組 a傳遞給參數(shù) x /【代碼11"%n");"歌手最后得分:%5.3fn", result);computer = new School;/computer 調(diào)用averagedouble x 方法,將數(shù)組 b傳遞給參數(shù) x /【代碼2】"學(xué)生平均體重:5.2f kg", result;運(yùn)行效果如以下圖.【知識點(diǎn)】1 .接口體中只有常量的聲明沒有變量和抽象方法聲明.而且接口體中所有的常量 的訪問權(quán)限一定都是public 允許省
11、略public、final修飾符、所有的抽象方法的訪問權(quán)限一定都是 public 允許省略public、abstract 修飾符.2 .類實(shí)現(xiàn)接口,以便綁定接口中的方法.一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,類通過使用關(guān)鍵 字implements聲明自己實(shí)現(xiàn)一個(gè)或多個(gè)接口.如果一個(gè)非抽象類實(shí)現(xiàn)了某個(gè)接口, 那么這個(gè)類必須重寫的所有方法.【實(shí)驗(yàn)指導(dǎo)】1 .可以把實(shí)現(xiàn)某一接口的類創(chuàng)立的對象的引用賦給該接口聲明的接口變量中,那么該 接口變量就可以調(diào)用被類實(shí)現(xiàn)的接口方法.2 .接口產(chǎn)生的多態(tài)就是指不同類在實(shí)現(xiàn)同一個(gè)接口時(shí)可能具有不同的實(shí)現(xiàn)方式.【學(xué)生解答】(1)程序代碼:【代碼 1】double result =
12、(a);代碼 2 result = (b);/class SongGame implements ComputerAverage public double average( double x) double min=10, max=-20, sum=0;for (int i = 0; i < i +) if ( x i <= min) min = x i ;)if ( x i >= ma雙 max = x i ;)sum+=x i ;)sum = sum - min - max sum = ( double )( sum/); returnsun)/class School
13、 implements ComputerAverage public double average( double x) double sum = 0;for (int i = 0; i < i +) sum+= x i ;double aver = ( double )( sum/; return aver;(2)運(yùn)行結(jié)果截圖:【思考題(選做)】School類如果不重寫public double average(double x) 方法,程序編譯時(shí)提示怎樣 的錯(cuò)誤?【答:】3.4接口回調(diào)(選做)【題4 (選做) 天氣預(yù)報(bào)】在Lab4工程中,編寫一個(gè)天氣預(yù)報(bào)的Java應(yīng)用程序,天氣可能出
14、現(xiàn)不同的狀態(tài),要求用接口封裝天氣的狀態(tài),具體要求如下:(1)編寫一個(gè)接口 WeatherState ,該接口有一個(gè)名字為 void showState() 的方法.(2)編寫 Weather類,該類中有一個(gè) WeatherState 接口聲明的變量 state .另外,該 類有一個(gè)show()方法,在該方法中讓接口state 回調(diào)showstate() 方法.(3)編寫假設(shè)干個(gè)實(shí)現(xiàn) WeatherState接口的類,負(fù)責(zé)刻畫天氣的各種狀態(tài).(4)編寫主類,在主類中進(jìn)行天氣預(yù)報(bào).程序運(yùn)行效果如以下圖.【知識點(diǎn)】掌握面向接口的編程思想:1 .程序設(shè)計(jì)時(shí)經(jīng)常會使用接口,由于接口只關(guān)心操作,不關(guān)心這些
15、操作具體實(shí)現(xiàn)的細(xì)節(jié),可以使程序的設(shè)計(jì)者把主要精力放在程序的設(shè)計(jì)上,而不拘泥于細(xì)節(jié)的實(shí)現(xiàn)(細(xì)節(jié)留給接口的實(shí)現(xiàn)者),即防止設(shè)計(jì)者把大量的時(shí)間和精力花費(fèi)與具體的算法上.2 .使用接口進(jìn)行程序設(shè)計(jì)的核心技術(shù)之一是使用接口回調(diào),即將實(shí)現(xiàn)接口的類的對象的引用放到接口變量中,那么這個(gè)接口變量就可以調(diào)用類實(shí)現(xiàn)的接口方法.3 .面向接口編程,是指當(dāng)設(shè)計(jì)某種重要的類是,不讓該類面向具體的類,而是面向接 口,即所設(shè)計(jì)類中的重要數(shù)據(jù)是接口聲明的變量,而不是具體類聲明的對象.【學(xué)生解答】(1)程序代碼:/public interface WeatherState public void showState();)/cl
16、ass TodayMoring implements WeatherState public void showState()“今天白天:多云,有時(shí)陰.");)/class TodayNight implements WeatherState public void showState()"今天夜間:小雨轉(zhuǎn)大雨");)/class TomorrowMoring implements WeatherState public void showState()"明天白天:小雨.");)/class TomorrowNight implements W
17、eatherState public void showState()明天夜間:少云,有時(shí)晴 ");)class weatherWeatherState state ;void show(WeatherState state ) ();) )public class WeatherForecast public static void main (String 口 args) WeatherState weath;weath = new TodayMoring();();weath = new TodayNight();();weather w = new weather();(new TomorrowMoring(); / 接口 回調(diào) (new TomorrowNight();(2)運(yùn)行結(jié)果截圖:4 .提交要求本次實(shí)驗(yàn)需提交的文件包括:1實(shí)驗(yàn)報(bào)告的word文檔,文件名格式為:學(xué)號姓名班級實(shí)驗(yàn)例如:張三1班實(shí)驗(yàn), 將word文檔的實(shí)驗(yàn)報(bào)告放入以“學(xué)號姓名班級實(shí)驗(yàn)X命名的文件夾中.如以下圖所示.2 Java源文件,建立一個(gè)以“學(xué)號姓名班級實(shí)驗(yàn)X命名的文件夾例如:張
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 混凝土道路維修施工方案
- 湖北水幕噴泉施工方案
- 《 龍川別志(節(jié)選) 》
- 重慶公園綠化工程施工方案
- 屋面門窗修理施工方案
- 實(shí)驗(yàn)室通風(fēng)櫥裝修施工方案
- 2025年紙品用膠合作協(xié)議書
- 玻璃幕墻更換施工方案
- 2025年手持云臺項(xiàng)目建議書
- 醫(yī)療機(jī)構(gòu)水污染物排放的公眾參與與社會監(jiān)督
- 急診預(yù)檢分診培訓(xùn)
- 建筑垃圾商業(yè)計(jì)劃書
- 2024年蘭州市高三診斷考試(一診)地理試卷(含答案)
- 小學(xué)中高年級語文整本書閱讀教學(xué)策略
- ?;愤\(yùn)輸安全應(yīng)急救援演練
- 2024年青島版數(shù)學(xué)五年級下冊第一單元、第二單元測試題及答案(各一套)
- 自行車的力學(xué)知識研究報(bào)告
- 《高危藥品管理》課件
- 腦梗動脈取栓護(hù)理查房課件
- 泊松過程與應(yīng)用
- 密閉取芯完整
評論
0/150
提交評論