包接口抽象類異常處理_第1頁
包接口抽象類異常處理_第2頁
包接口抽象類異常處理_第3頁
包接口抽象類異常處理_第4頁
包接口抽象類異常處理_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、淮陰工學(xué)院課程實(shí)驗(yàn)報(bào)告課程名稱java程序設(shè)計(jì)教程班級實(shí)驗(yàn)日期姓名學(xué)號實(shí)驗(yàn)成績實(shí)驗(yàn)名稱包、接口 抽象類&&異常處理實(shí)驗(yàn)?zāi)康募耙髮?shí)驗(yàn)?zāi)康模?. 了解java 中包(package)、接口(interface)和抽象類的作用。2. 掌握包、接口、抽象類的設(shè)計(jì)方法。3. 了解java異常處理(exception)的作用。4. 掌握異常處理的設(shè)計(jì)方法。實(shí)驗(yàn)要求:1. 了解java 系統(tǒng)包的結(jié)構(gòu)。2. 掌握創(chuàng)建自定義包的方法。3. 掌握使用系統(tǒng)接口的技術(shù)和創(chuàng)建自定義接口的方法。4. 理解系統(tǒng)異常處理的機(jī)制和創(chuàng)建自定義異常的方法。實(shí)驗(yàn)環(huán)境windows2000 或xp,jdk1.6與jc

2、reator4.0實(shí)驗(yàn)內(nèi)容1.定義一個(gè)抽象基類shape,它包含三個(gè)抽象方法center()、diameter()、getarea(),從shape類派生出square和circle類,這兩個(gè)類都用center()計(jì)算對象的中心坐標(biāo),diameter()計(jì)算對象的外界圓直徑,getarea()方法計(jì)算對象的面積。編寫編寫應(yīng)用程序使用square類和circle類。2定義一個(gè)接口insurance,接口中有四個(gè)抽象方法:public int getpolicynumber();public int getcoverageamount();public double calculatepremiu

3、m();public date getexpirydate()。設(shè)計(jì)一個(gè)類car,該類實(shí)現(xiàn)接口的方法,編寫應(yīng)用程序。3.定義泛型接口function<t,tresult> , 其中包含方法tresult fun(t element),該方法語義上根據(jù)一個(gè)t類型的參數(shù)得到一個(gè)tresul的結(jié)果。請定義一個(gè)collectionutil類,該類主要對集合進(jìn)行操作,所有的方法都是靜態(tài)方法。請思考并以下問題:1) 我們需要一個(gè)collectionutil對象嗎?該類是否應(yīng)該是抽象類?2) 定義方法public static <t,tresult> collection<tr

4、esult> convert(collection<t> data,function<t,tresult> converter) 注意: collection是java集合的父接口對象,該方法的作用是針對集合data中的每一個(gè)元素,我們運(yùn)用一個(gè)轉(zhuǎn)換規(guī)則對象converter得到另外一個(gè)對象。例如:對于一個(gè)浮點(diǎn)數(shù)集合source為2.3,4.2,5.6,-2.4,對該集合中的每一個(gè)元素進(jìn)行四舍五入操作,可以得到一個(gè)整數(shù)的集合2,4,6,-2,為了完成上述轉(zhuǎn)換,我們可以定義轉(zhuǎn)換類public class tointfun implements function<

5、double,integer> public integer fun(double x) return x四舍五入的結(jié)果;然后我們調(diào)用collectionutil. convert<double,integer>(source,new tointfun(),該方法的調(diào)用結(jié)果就是我們想要的四舍五入的結(jié)果集合。請你完成方法convert和tointfun. fun,并且編寫一個(gè)主程序來測試。測試分為兩個(gè)層次:a.測試單個(gè)元素的轉(zhuǎn)換是否正確 b.測試集合的轉(zhuǎn)換是否正確3) 定義接口command<t>,該接口包含方法void execute(t element),上述方

6、法的作用是對一個(gè)t類型的參數(shù)element,做某個(gè)事情,最簡單的是輸出該元素的值。然后為collectionutil類定義靜態(tài)方法 <t> void foreach(collection<t> data, command<t> cmd)。該方法的作用是針對集合data中的每個(gè)元素,執(zhí)行某個(gè)操作。請你定義一個(gè)類class positionsum實(shí)現(xiàn)接口command<integer>,并且在execute方法中完成將一個(gè)整數(shù)的所有位數(shù)和輸出的功能。然后完成方法collectionutil.foreach并且在主程序中測試positionsum和co

7、llectionutil.foreach。4. 自定義異常類myexception,該類繼承自exception類,類中只有含一個(gè)字符串參數(shù)msg的構(gòu)造方法,構(gòu)造方法中只有一條語句super(msg)調(diào)用父類的構(gòu)造方法。另外,編寫自定義類person,類中只有兩個(gè)私有的變量,一個(gè)是字符串類型的姓名,另一個(gè)是整型變量age;有兩個(gè)公有方法void getage()和setage(int age),其中setage(int age)的功能是把參數(shù)age的值加到類中的變量age中(但要求age>0,否則拋出自定義異常myexception類的對象),getage()方法返回age的值。編寫應(yīng)用

8、程序。算法描述及實(shí)驗(yàn)步驟調(diào)試過程及實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)1測試結(jié)果:中心坐標(biāo)為:(1.0,1.0)外界圓直徑為2.8284271247461903面積為:8.0中心坐標(biāo)為:(1.0,1.0)外界圓直徑為2.8284271247461903面積為:13.56實(shí)驗(yàn)2測試結(jié)果:保單號:11100保險(xiǎn)金額:12200保險(xiǎn)總計(jì):12345.6終止日期:null實(shí)驗(yàn)3測試結(jié)果:實(shí)驗(yàn)4測試結(jié)果:請輸入年齡:22張三的年齡為:22請輸入年齡:-3exception in thread "main" myexception: 年齡必須大于0at person.setage(person.java:24

9、)at person.main(person.java:36)總結(jié)附錄實(shí)驗(yàn)1代碼如下:public abstract class shape protected double x1;protected double y1;protected double x2;protected double y2;shape(double x1, double y1, double x2,double y2)this.x1 = x1;this.y1 = y1;this.x2 = x2;this.y2 = y2;public abstract string center();public abstract d

10、ouble diameter();public abstract double getarea();public class square extends shapesquare(double x1, double y1, double x2,double y2)super(x1,y1,x2,y2);public string center()return "(" + (x2-x1)/2 + "," + (y2-y1)/2 + ")"public double diameter()return math.sqrt(x2-x1)*(x2

11、-x1)+(y2-y1)*(y2-y1);public double getarea()return (x2-x1)*(x2-x1)+(y2-y1)*(y2-y1);public class circle extends shapecircle(double x1, double y1, double x2,double y2)super(x1,y1,x2,y2);public string center()return "(" + (x2-x1)/2 + "," + (y2-y1)/2 + ")"public double diam

12、eter()return math.sqrt(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1);public double getarea()return 3.14*(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)/4;public static void main(string args)square a = new square(1.0,2.0,3.0,4.0);circle b = new circle(2.0,3.0,4.0,5.0);system.out.print("中心坐標(biāo)為:");system.out.println(a.cente

13、r();system.out.print("外界圓直徑為");system.out.println(a.diameter();system.out.print("面積為:");system.out.println(a.getarea();system.out.print("中心坐標(biāo)為:");system.out.println(b.center();system.out.print("外界圓直徑為");system.out.println(b.diameter();system.out.print("面積

14、為:");system.out.println(b.getarea();實(shí)驗(yàn)2代碼如下:import java.util.date;/定義接口public interface insurance public abstract int getpolicynumber(); public abstract int getcoverageamount(); public abstract double calculatepremium(); public abstract date getexpirydate();import java.util.date;public class ca

15、r implements insurance public int getpolicynumber() return 11100; /直接返回保單號 public int getcoverageamount() return 12200; /返回保險(xiǎn)金額 public double calculatepremium() return 12345.6; /返回保險(xiǎn)的總金額 public date getexpirydate() return null ; /沒有終止日期 public static void main(string args) car a = new car(); system.

16、out.println("保單號:"+a.getpolicynumber(); system.out.println("保險(xiǎn)金額:"+a.getcoverageamount(); system.out.println("保險(xiǎn)總計(jì):"+a.calculatepremium(); system.out.println("終止日期:"+a.getexpirydate(); 實(shí)驗(yàn)3代碼如下:實(shí)驗(yàn)4代碼如下:public class myexception extends exception public myexcepti

17、on(string msg)super(msg);import java.util.scanner;public class person private string name;private int age;public person(string a)name=a;public int getage()return age;public string getname()return name; public void setage(int age)throws myexception if(age<0) throw new myexception("年齡必須大于0"); else this.age=age

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論