14401048方萍3班試驗(yàn)_第1頁(yè)
14401048方萍3班試驗(yàn)_第2頁(yè)
14401048方萍3班試驗(yàn)_第3頁(yè)
14401048方萍3班試驗(yàn)_第4頁(yè)
14401048方萍3班試驗(yàn)_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余2頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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ǔ)句.運(yùn)行環(huán)境:開發(fā)環(huán)境:Eclipse3 .實(shí)驗(yàn)內(nèi)容及題目3.11子類的繼承與方法的重寫(1) 中國(guó)人與美國(guó)人】 在Eclipse 中創(chuàng)立名為L(zhǎng)ab4的新工程,編寫程序模擬中國(guó)人、美國(guó)人、北京人.除主類外,程序中有 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頁(yè)的【例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天的利息.【知識(shí)點(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來(lái)調(diào)用父類的構(gòu)造方法,而且 super必須是子類

6、構(gòu)造方法中的頭一條語(yǔ)句,即如果在在子類的 構(gòu)造方法中,沒有明顯地寫出super關(guān)鍵字來(lái)調(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é)生體重評(píng)估】在Lab4工程中,編寫程序,要求模擬歌手大賽計(jì)算 選手成績(jī)和評(píng)估班級(jí)學(xué)生體重.歌手大賽計(jì)算選手成績(jī)的方法是去掉一個(gè)最高分和一個(gè)最低分后再計(jì)算平均分,而學(xué)校評(píng)估一個(gè)班級(jí)的學(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)行效果如以下圖.【知識(shí)點(diǎn)】1 .接口體中只有常量的聲明沒有變量和抽象方法聲明.而且接口體中所有的常量 的訪問權(quán)限一定都是public 允許省

11、略public、final修飾符、所有的抽象方法的訪問權(quán)限一定都是 public 允許省略public、abstract 修飾符.2 .類實(shí)現(xiàn)接口,以便綁定接口中的方法.一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,類通過(guò)使用關(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)立的對(duì)象的引用賦給該接口聲明的接口變量中,那么該 接口變量就可以調(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)行效果如以下圖.【知識(shí)點(diǎn)】掌握面向接口的編程思想:1 .程序設(shè)計(jì)時(shí)經(jīng)常會(huì)使用接口,由于接口只關(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)接口的類的對(duì)象的引用放到接口變量中,那么這個(gè)接口變量就可以調(diào)用類實(shí)現(xiàn)的接口方法.3 .面向接口編程,是指當(dāng)設(shè)計(jì)某種重要的類是,不讓該類面向具體的類,而是面向接 口,即所設(shè)計(jì)類中的重要數(shù)據(jù)是接口聲明的變量,而不是具體類聲明的對(duì)象.【學(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é)號(hào)姓名班級(jí)實(shí)驗(yàn)例如:張三1班實(shí)驗(yàn), 將word文檔的實(shí)驗(yàn)報(bào)告放入以“學(xué)號(hào)姓名班級(jí)實(shí)驗(yàn)X命名的文件夾中.如以下圖所示.2 Java源文件,建立一個(gè)以“學(xué)號(hào)姓名班級(jí)實(shí)驗(yàn)X命名的文件夾例如:張

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論