




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、java 程序設計實驗四:繼承、多態(tài)與接口1.提交期限和方法期限:第12 周周五( 2015-11-27 )23:59 pm 方法:由學習委員收集所有學生的實驗報告,以電子檔的形式提交給任課教師(發(fā)郵箱:) 。2.實驗目的及要求掌握 java 的基本數(shù)據(jù)類型、運算符、表達式和語句。運行環(huán)境:開發(fā)環(huán)境: eclipse3.實驗內容及題目3.1 子類的繼承與方法的重寫【題 1 中國人與美國人】 在 eclipse 中創(chuàng)建名為lab4 的新項目, 編寫程序模擬中國人、美國人、北京人。除主類外,程序中有4 個類: people 、chinapeople 、americanpeople和 beijing
2、people類。要求如下:(1) people 類有權限是protected的 double 型成員變量: height和 weight , 以及 public void speakhello( ) 、public void averageheight( ) 和 public void averageweight( )方法。(2)chinapeople 類是 people 類的子類,新增了public void chinagongfu( )方法。要 求chinapeople重 寫 父 類 的public void speakhello ()、 public void averageheight
3、( )和 public void averageweight( )方法。(3)americanpeople 類是 people 的子類,新增public void americanboxing( ) 方法。要 求americanpeople重 寫 父 類 的public void speakhello( ) 、 public void averageheight( )和 public void averageweight( )方法。(4)beijingpeople類是 chinapeople的子類,新增public void beijingopera( )方法。要求beijingpeople重
4、寫父類的public void speakhello( )、 public void averageheight( )和 public void averageweight( )方法。運行效果如下圖。按下列代碼模板要求,將【代碼】部分替換為java 程序代碼。部分代碼已給出:176 cm1.3.2 成員變量隱藏與 super 關鍵字【題 2 銀行與利息】在lab4 項目中,編寫程序。驗證教材第5 章 81 頁的【例 5-7 】 。假設銀行bank 已經(jīng)有了按整年year 計算利息的一般方法,其中year 只能取正整數(shù)。如按整年計算的方法:double compuerinterest()inte
5、rest = year * * savedmoney;return interest;建設銀行的天利息計算公式為:dayinterst = 天數(shù) * * 存款數(shù)大連銀行的天利息計算公式為:dayinterst = 天數(shù) * * 存款數(shù)參照例子中的建設銀行或大連銀行,再編寫一個商業(yè)銀行,讓程序輸出8000 元存在商業(yè)銀行8 年零 236 天的利息?!局R點】1.成員變量隱藏和方法重寫;2.super 關鍵字?!緦嶒炛笇А?.當 super 調用被隱藏的方法時,該方法中出現(xiàn)的成員變量是被子類隱藏的成員變量或繼承的成員變量。2.子類不繼承父類的構造方法,因此,子類在其構造方法中需使用super 來調
6、用父類的構造方法,而且super 必須是子類構造方法中的頭一條語句,即如果在在子類的構造方法中,沒有明顯地寫出super 關鍵字來調用父類的某個構造方法,那么默認有“ super( );” 。3.類中定義多個構造方法時,建議包括一個不帶參數(shù)的構造方法,以便子類可以省略“super( );” 。【學生解答】(1)商業(yè)銀行的程序代碼:class bankintsavedmoney;intyear ;doubleinterest;publicdouble computerinterest()interest = year * savedmoney;returninterest;class busin
7、essbank extends bankdoubleyear ;publicdouble computerinterest() = (int ) year ;doubleremainnumber = year - (int )year ;intday = (int )( remainnumber *1000);interest = ()+day* savedmoney;%d元存在商業(yè)銀行%d 年零 %d 天的利息: %.2f 元n , savedmoney, day, interest);returninterest;publicclass example5_2 publicstaticvoi
8、d main(string args )businessbank bank1 = new businessbank(); = 8000; = ;doubleinterest1 = ();(2)商業(yè)銀行的運行結果截圖:3.3 接口【題 3 歌手大賽與學生體重評估】在lab4 項目中,編寫程序,要求模擬歌手大賽計算選手成績和評估班級學生體重。歌手大賽計算選手成績的方法是去掉一個最高分和一個最低分后再計算平均分,而學校評估一個班級的學生的體重時,是計算全班同學的平均體重。 songgame類和school類都實現(xiàn)了computeraverage接口,但實現(xiàn)方式不同。computeraverage 類
9、和 estimator主類的部分代碼已給出 (如下), 按下列代碼模板要求,將【代碼】部分替換為java 程序代碼,并寫出songgame 類和 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;computerave
10、rage computer;computer = new songgame();/computer調用 average(double x)方法,將數(shù)組a 傳遞給參數(shù)x/ 【代碼 1】%n);歌手最后得分:%5.3fn, result);computer = new school();/computer調用 average(double x)方法,將數(shù)組b 傳遞給參數(shù)x/ 【代碼 2】學生平均體重:%5.2f kg, result);運行效果如下圖?!局R點】1.接口體中只有常量的聲明(沒有變量)和抽象方法聲明。而且接口體中所有的常量的訪問權限一定都是public (允許省略public 、fi
11、nal修飾符)、所有的抽象方法的訪問權限一定都是public (允許省略public 、abstract修飾符)。2.類實現(xiàn)接口,以便綁定接口中的方法。一個類可以實現(xiàn)多個接口,類通過使用關鍵字 implements聲明自己實現(xiàn)一個或多個接口。如果一個非抽象類實現(xiàn)了某個接口,那么這個類必須重寫的所有方法?!緦嶒炛笇А?.可以把實現(xiàn)某一接口的類創(chuàng)建的對象的引用賦給該接口聲明的接口變量中,那么該接口變量就可以調用被類實現(xiàn)的接口方法。2.接口產(chǎn)生的多態(tài)就是指不同類在實現(xiàn)同一個接口時可能具有不同的實現(xiàn)方式?!緦W生解答】(1)程序代碼:【代碼 1】double result = (a);【代碼 2】res
12、ult = (b);/ class songgame implements computeraveragepublicdouble average(doublex)doublemin=10, max =-20, sum =0;for ( inti = 0;i ; i +)if ( x i = max)max = x i ;sum+=x i ;sum = sum - min - max ;sum = (double )( sum/);returnsum;/class school implements computeraveragepublicdouble average(doublex)dou
13、blesum = 0;for ( inti = 0; i ; i +)sum+= x i ;doubleaver = (double )( sum/;returnaver ;(2)運行結果截圖:【思考題(選做) 】school 類如果不重寫public double average(double x)方法,程序編譯時提示怎樣的錯誤【答:】3.4 接口回調(選做)【題 4(選做)天氣預報 】在 lab4 項目中,編寫一個天氣預報的java 應用程序,天氣可能出現(xiàn)不同的狀態(tài),要求用接口封裝天氣的狀態(tài),具體要求如下:(1)編寫一個接口weatherstate ,該接口有一個名字為void shows
14、tate( )的方法。(2)編寫 weather 類,該類中有一個weatherstate接口聲明的變量state 。另外,該類有一個show( ) 方法,在該方法中讓接口state回調 showstate( )方法。(3)編寫若干個實現(xiàn)weatherstate接口的類,負責刻畫天氣的各種狀態(tài)。(4)編寫主類,在主類中進行天氣預報。程序運行效果如下圖?!局R點】掌握面向接口的編程思想:1.程序設計時經(jīng)常會使用接口,因為接口只關心操作,不關心這些操作具體實現(xiàn)的細節(jié),可以使程序的設計者把主要精力放在程序的設計上,而不拘泥于細節(jié)的實現(xiàn)(細節(jié)留給接口的實現(xiàn)者) ,即避免設計者把大量的時間和精力花費與具
15、體的算法上。2.使用接口進行程序設計的核心技術之一是使用接口回調,即將實現(xiàn)接口的類的對象的引用放到接口變量中,那么這個接口變量就可以調用類實現(xiàn)的接口方法。3.面向接口編程,是指當設計某種重要的類是,不讓該類面向具體的類,而是面向接口,即所設計類中的重要數(shù)據(jù)是接口聲明的變量,而不是具體類聲明的對象。【學生解答】(1)程序代碼:/publicinterface weatherstate publicvoid showstate();/class todaymoring implements weatherstatepublicvoid showstate() 今天白天:多云,有時陰。 );/cla
16、ss todaynight implements weatherstatepublicvoid showstate() 今天夜間:小雨轉大雨 );/ class tomorrowmoring implements weatherstatepublicvoid showstate() 明天白天:小雨。 );/ class tomorrownight implements weatherstatepublicvoid showstate() 明天夜間:少云,有時晴 );class weatherweatherstate state ;void show(weatherstate state )()
17、;publicclass weatherforecast publicstaticvoid main (string args )weatherstate weath ;weath = new todaymoring();();weath = new todaynight();();weather w = new weather();( new tomorrowmoring(); /接口回調( new tomorrownight();(2)運行結果截圖:4.提交要求本次實驗需提交的文件包括:(1) 實驗報告的word 文檔,文件名格式為: 學號姓名班級實驗 (例如: 張三 1 班實驗),將 word 文檔的實驗報告放入以“學號姓名班級實驗x”命名的文件夾中。如下圖所示。(2)java 源文件,建立一個以“學號姓名班級實驗x”命名的文件夾(例如:張三1班實驗 1) ,文件夾
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅游行業(yè)運營與服務管理案例分析題庫及解答指導
- 證券投資分析與風險管理知識考點
- 擴大宣傳效益內容梳理條款協(xié)議
- ××超市版權合規(guī)制度
- 我心中的英雄形象:小學生寫人作文9篇
- 美國國立衛(wèi)生研究院(NIH)公共獲取的案例解析及啟示
- 雨后彩虹的約定:童話色彩的故事展現(xiàn)美好愿景8篇
- 2025年甲肝滅活疫苗項目立項申請報告模板
- 2025年德語TestDaF口語模擬試卷:歷年真題解析與備考策略
- 2025年電子商務師(初級)職業(yè)技能鑒定試卷:電商行業(yè)發(fā)展趨勢分析
- “安全生產(chǎn)課件:如何預防工傷事故”
- 14天攻克KET詞匯表
- 簡易精神狀態(tài)檢查量表(MMSE)
- 《教育學原理》馬工程教材第二章教育與社會發(fā)展
- GB/T 10095.2-2023圓柱齒輪ISO齒面公差分級制第2部分:徑向綜合偏差的定義和允許值
- 西藏農(nóng)村公路管理辦法
- 考研英語5500詞匯大綱
- 廣州市白云廣附實驗學校招生數(shù)學真題卷
- 20232023期末A 統(tǒng)計學考試卷 首經(jīng)貿
- 福建省福州市福建師大附中2023年自主招生樣卷--數(shù)學試卷
- GB/T 16622-2022壓配式實心輪胎規(guī)格、尺寸與負荷
評論
0/150
提交評論