版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)項(xiàng)目名稱:面向?qū)ο缶帉?shí)驗(yàn)學(xué)時(shí):歡迎下載221514 /A203同組學(xué)生姓名:實(shí)驗(yàn)地點(diǎn):實(shí)驗(yàn)日期: 4.13/4.15/4.20/4.22實(shí)驗(yàn)成績:批改教師:王倩倩批改時(shí)間:、實(shí)驗(yàn)?zāi)康暮鸵螅?)熟練掌握 Java 語言類定義的基本語法;(2)熟練掌握類成員的訪問控制,對象建立的方法;(3)熟練掌握類構(gòu)造方法、成員方法的定義和重載;(4)熟練掌握類繼承、多態(tài)和抽象性;(5)熟練掌握接口的定義和實(shí)現(xiàn)方法;(6)掌握基本的異常處理方法;(7)調(diào)試程序要記錄調(diào)試過程中出現(xiàn)的問題及解決辦法;(8)編寫程序要規(guī)范、正確,上機(jī)調(diào)試過程和結(jié)果要有記錄,不斷積累編程及調(diào)試經(jīng)驗(yàn);( 9) 做完實(shí)驗(yàn)后給出本實(shí)驗(yàn)
2、的實(shí)驗(yàn)報(bào)告。二、 實(shí)驗(yàn)儀器和設(shè)備奔騰以上計(jì)算機(jī), Windows 操作系統(tǒng),裝有 JDK1.7 和 Eclipse 軟件。三、 實(shí) 驗(yàn)過程( 1) 設(shè)計(jì)復(fù)數(shù)類,成員變量包括實(shí)部和虛部,成員方法包括實(shí)現(xiàn)復(fù)數(shù)加法、減法、字符串描述、比較是否相等等操作。( 2) 設(shè)計(jì)三角形類,繼承圖形抽象類,實(shí)現(xiàn)面積接口和周長接口,計(jì)算三角形面積和 周長。( 3) 包的建立與使用:設(shè)計(jì)計(jì)算器類 Calculator ,計(jì)算加、減、乘、除,并且打包 為 mypackage 。觀察源文件目錄下是否生成了 mypackage 文件夾,在該文件夾中是否有 Calculate.class 文件。編輯 PackageDemo.
3、java ,保存在 Calculator.java 同一目錄下, 引用計(jì) 算器類的各方法顯示計(jì)算結(jié)果。( 4) 編碼實(shí)現(xiàn)多態(tài)在工資系統(tǒng)中的應(yīng)用:給出一個(gè)根據(jù)雇員類型利用abstract 方法和多態(tài)性完成工資單計(jì)算的程序。 Employee 是抽象類, Employee 的子類有 Boss (每星 期發(fā)給他固定工資,而不計(jì)工作時(shí)間)、 CommissionWorker (除基本工資外還根據(jù)銷售額發(fā)放浮動工資)、 PieceWorker (按其生產(chǎn)的產(chǎn)品數(shù)發(fā)放工資)、 HourlyWorker (根據(jù) 工作 時(shí)間長短發(fā)放工資)。該例的 Employee 的每個(gè)子類都聲明為 final ,因?yàn)椴恍枰?/p>
4、再 繼承它們生 成子類。在主測試類Test 中測試各類雇員工資計(jì)算結(jié)果。提示: 對所有雇員類型都使用earni ngs ()方法,但每個(gè)人掙的工資按他所屬的雇員類計(jì)算,所有雇員類都是從超類Employee 派出生的。在超類中聲明 earnings () 為抽象方法,并且對于每個(gè)子類都提供恰當(dāng)?shù)膃arni ngs ()的實(shí)現(xiàn)方法。為了計(jì)算雇員的工資,程序僅僅使用雇員對象的一個(gè)超類引用并調(diào)用earni ngs ()方法。在一個(gè)實(shí)際的工資系統(tǒng)中,各種 Employee 對象的引用可以通過一個(gè)Employee 引用數(shù)組來實(shí)現(xiàn)。 程序依次使用數(shù)組的每個(gè)元素 ( Employee 引用) 調(diào)用每個(gè)對象的e
5、arnings() 方法。Employee 類定義如下: abstract class Employee private Stri ng firstName; private String lastName; public Employee(String first,String last) firstName=first; lastName=last; public String getEmployeeName() return firstName; public String getLastName() return lastName; public Stri ng toStri ng()
6、retur n firstName+lastName; public abstract String earnin gs(); (5) 果。使用三個(gè) 常、除數(shù)為 0 的異常和參數(shù)輸入有誤異常。 import java.io.*;class Ex1 public static void main(String args) tryBufferedReader stri n=new BufferedReader( new In putStreamReader(System.i n); 異常的捕獲:計(jì)算兩數(shù)相除并輸出結(jié)catch 子句,分別捕捉輸入輸出異建立輸入流緩沖區(qū)System.out.pri n
7、t ( ”Stri ng cl=stri n.readLi ne(); int a=ln teger .parse In t(cl); System .out .pri nt(" cl=stri n .readL in e();int b=ln teger .parse In t(cl); int c=b/a;System .out .println ( ”請輸入除數(shù): ”;) 鍵盤輸入請輸入被除數(shù): ”;)商為: "+c);/捕獲與I/O有關(guān)的異常(空白處補(bǔ)全捕獲語句)/ 捕獲數(shù)值轉(zhuǎn)化時(shí)的異常,如不能將字符轉(zhuǎn)化成數(shù)值/捕獲除數(shù)為0的異常編譯并運(yùn)行,當(dāng)產(chǎn)生輸入輸出異常時(shí)顯示
8、異常信息;當(dāng)輸入除數(shù)為0時(shí),出現(xiàn)算術(shù)異常,提示除數(shù)為0,并要求重新輸入;當(dāng)輸入的不是整數(shù)時(shí),如將30輸成了 30,出現(xiàn)數(shù)值格式異常,提示輸入整數(shù)。思考:是否還有其他異常需要捕獲處理?(6)編寫程序包含自定義異常MyException,當(dāng)100被13和4除時(shí)拋出該異常,其余除數(shù)顯示商值。要求:(1) 注意選用適當(dāng)?shù)念惓蓡T修飾符(private、protected、public等:),比較它們的用情況;使(2) 養(yǎng)成良好的編程習(xí)慣,嚴(yán)格按照命名規(guī)則為包、類及類成員命名,包的將每個(gè)程序打包,命名方式如two. num1表示實(shí)驗(yàn)一的第一題;(3)學(xué)會使用Eclipse的各種調(diào)試方法;(4)學(xué)會查閱Ja
9、va API文檔,如查找異常類的使用方法。程序清單:增強(qiáng)可讀性;較長程序可分欄書寫,保證報(bào)告排版整潔美(建議程序中適當(dāng)添加注釋信息, 觀。)(1)代碼如下:package shiya n2_1;public class complex nu mber private double real , imag ;publiccomplex nu mber(double r, double i)this . real =r;this . imag =i;publiccomplex nu mber add(complex nu mber c)complex nu mber temp= new compl
10、ex nu mber(0,0); temp. real =this . real +c. real ;temp. imag =this . imag +c. imag ;retur n temp;publiccomplex nu mber sub(complex nu mber c)complex number temp= new complex number(0,0); temp. real =this . real -c. real ;temp. imag =this . imag -c. imag ;return temp;public boolea n equals(complex n
11、umber c)if ( this =c| this . real =c. real &&this . imag =c. imag)return true ;return false ;public String toString()return this . real +"+" +this . imag +"i" public static voidmain( Stri ng args)complex number a=System. new complex number(1,2);out .println( complex numbe
12、r b= System. out .println( System. out .println( System."第一個(gè)虛數(shù)為: new complex number(1,2);"第二個(gè)虛數(shù)為:out .println( if (a.equals(b)"兩個(gè)徐庶的和:"+a.toStr in g();"+b.toStr in g();"+a.add(b).toStri ng()"+a.sub(b).toStri ng()System. out .println(兩個(gè)虛數(shù)相等 “);兩個(gè)虛數(shù)不相等 “);elseSystem.
13、 out .println(2) 代碼如下:Point 類:package shiyan2_2; public class Point public int x, y;public Point( int x, int y)this . x=x;this . y=y;public Poi nt()this (0,0);public String toString()return "Point ( ” +this . x+"," +this . y+")"figure 類:package shiyan2_2;public class figurep
14、ublic Point point1 ;protected Stringshape ;protectedfigure(Po int point)this . point1 =point;protectedfigure(Po int poin t,Stri ng shape)this . point1 =point; this . shape =shape;protected figure()this ( new Point();Trian gle 類:impleme ntsArea,Perimeterpackage shiyan2_2;public classTrian gleexte nds
15、 figurepublic Point point2 , point3 ; protected double a, b, c;public Triangle(Point p1,Point p2,Point p3)super (p1," 三角形 ");this . point2 =p2;this . point3 =p3;this.a二Math. sqrt ( point1.x- point2.x)*(poi nt1.x- point2.x)+( poi nt1.y- poi nt2 . y)*(point1 . y- point2.y);this.b二Math. sqrt
16、(poi nt2.x- point3.x)*(poi nt2.x- point3.x)+( poi nt2.y- poi nt3 .y)*(point2 . y- point3.y);this.c二Math. sqrt (poi nt3.x- point1.x)*(poi nt3.x- point1.x)+( poi nt3.y- poi nt1 .y)*(poi nt3 . y- poi nt1.y);public Trian gle(Po int p1,double a, double b, double c)super (p1,"三角形“;this . a=a;this . b
17、=b;this . c=c;public double area()double s=( a+b+c)/2; retur n Math. sqrt (s*(s-public double perimeter()retur n a+b+c;a)*(s-b)*(s-c);public String toStri ng()return this .getClass().getName()+"+this . poi nt1 +"," +(this . poi nt2 =null ?"n ull"this . shape +",三點(diǎn)坐標(biāo):thi
18、s . point2 .toString()+","+(this . point3 =null ?"null":this . poi nt3 .toStri ng()+",三邊長,this . a, this . b, this . c);"+Stri ng. format ( "%1.2f,%1.2f,%1.2f"Area 接口:package shiya n2_2; public in terface Area public abstract double area();Perimeter 接口: packag
19、e shiya n2_2;public in terface Perimeterpublic abstract double perimeter Test 類: package shiyan2_2; public class textpublic static void main( Str in g args)newTria ngle tr= new Tria ngle( new Poi nt(1OO,1OO),new Poi nt(100,130),Poi nt(140,130);Area ar=tr;System. out .println(tr.toString();System. ou
20、t .println("面積為: "+String.format ("%1.2f",ar.area();Perimeter pe=tr;System. out .println("周長為: "+String.format ( "%1.2f",pe.perimeter();(3) 代碼如下: package mypackage; public class calculatorprivate double x;public calculator( double xx)this . x=xx;public double
21、add(calculator c)return ( this . x+c. x);public double sub(calculator c)return ( this . x-c. x);public double mul(calculator c)return ( this . x*c. x);public double div(calculator c)return ( this . x/c. x);public String toString()return " " +this . x+""package mypackage; public c
22、lass PackageDemo public static void main(String args) calculator aa= new calculator 。) ;"="+aa.add(bb)"="+aa.sub(bb)"="+aa.mul(bb)"="+aa.div(bb);out .println("加法 :"+" +bb.toStri ng()+out .println("減法 :"-"+bb.toStri ng()+ out .prin
23、tln("乘法 :"*" +bb.toStri ng()+ out .println("除法 :"/" +bb.toStri ng()+ calculator bb= new calculator 。) ; System."+aa.toStr in g()+System."+aa.toStr in g()+ System."+aa.toStr in g()+ System."+aa.toStr in g()+(4) 代碼如下: Employee 類: package shiyan2_4;publ
24、ic abstract class Employee public Employee()private Stri ngfirstName ;private StringlastName ;public Employee(String first,String last) firstName =first; lastName =last;public Stri ng getEmployeeName()return firstName ;public String getLastName()return lastName ;public String toStri ng()retur n firs
25、tName +lastName ;public abstractStri ng ear nin gs();Employee 類:package shiya n2_4;public final class Bossexte nds Employeepublic String ear nin gs()return "通過Boss的工資計(jì)算公式計(jì)算岀老板的工資;Commissio nWorker 類:package shiya n2_4;public final class Commissio n Workerexte nds Employeepublic String ear nin g
26、s()return "通過CommissionWorker的工資計(jì)算公式計(jì)算岀老板的工資HourlyWorke 類: package shiyan2_4;public final class HourlyWorkerpublic String ear nin gs()return ” 通過 HourlyWorkerPieceWorker 類:package shiya n2_4;public final class PieceWorkerpublic String ear nin gs()exte nds Employee的工資計(jì)算公式計(jì)算岀老板的工資exte nds Employe
27、ereturn"通過 PieceWorker的工資計(jì)算公式計(jì)算岀老板的工資Text 類:package shiyan2_4;public class textpublic static void main( Str in g args)Employee em= new Boss();System. out .println(em.earnings();em=new Commissi on Worker 。; System. out .println(em.earnings(); em= new PieceWorker();System. out .println(em.earning
28、s();em=new HourlyWorker();System. out .println(em.earnings();(5) 代碼如下:package shiyan2_5;import java.io.*;public class Ex1public static voidmai n( Stri ng args)Stri ng cl= n ull ;tryBufferedReader str in= new BufferedReader( newInputStreamReader(System. in ); /建立輸入流緩沖區(qū) System. out .print( " 請輸入除
29、數(shù): ") ;cl=strin.readLine(); / 鍵盤輸入 int a=ln teger . parse Int (cl);System .out .print(" 請輸入被除數(shù): ");cl=str in .readL in e();int b=ln teger . parse Int (cl);int c=b/a;System .out .println("商為: "+c);catch (IOException ex)System. out .println( "I/O 有關(guān)的異常 ") ;catch (Num
30、berFormatException ex)System. out .println(cl+"字符串不能轉(zhuǎn)換成整數(shù)");catch (ArithmeticException ex)System. out .println("除數(shù)不能 0");(6)代碼如下:自定義異常類:package shiya n2_6;public class MyExceptionexte nds Excepti onpublic MyExcepti on( Str ing s)super (s);public MyExcepti on()super ();package shi
31、ya n 2_6;import java.io.BufferedReader;import java.i o.I OExcepti on;import java.i on putStreamReader;public class Dividepublic static double div(double a,double b) throws MyExcepti onif(a=100&&( b=4|b=13) throw new MyException(”else return a/b;public static void mai n( Stri ng args)不符合規(guī)范”;Stri ng cl=n ull;double a,b;tryBufferedReader stri n=new BufferedReader( newIn putStreamReader(System.i n);System.out.pri
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度寵物用品銷售及養(yǎng)護(hù)服務(wù)外包協(xié)議4篇
- 2025年度廠房租賃合同配套基礎(chǔ)設(shè)施完善協(xié)議4篇
- 旅游部門半年回顧
- 專用借款協(xié)議:2024年版詳盡協(xié)議版A版
- 2025年度智能家居產(chǎn)品定制生產(chǎn)合同范本4篇
- 二零二四三方國際貿(mào)易融資借款協(xié)議2篇
- 2025年度拆除項(xiàng)目環(huán)保驗(yàn)收合同模板4篇
- 二手房交易代簽合同范本2024年版版
- 個(gè)性化服務(wù)型酒店房間租賃協(xié)議版A版
- 二零二五版船艇交易環(huán)保與安全協(xié)議3篇
- 施工現(xiàn)場水電費(fèi)協(xié)議
- SH/T 3046-2024 石油化工立式圓筒形鋼制焊接儲罐設(shè)計(jì)規(guī)范(正式版)
- 2024年??谑羞x調(diào)生考試(行政職業(yè)能力測驗(yàn))綜合能力測試題及答案1套
- 六年級數(shù)學(xué)質(zhì)量分析及改進(jìn)措施
- 一年級下冊數(shù)學(xué)口算題卡打印
- 真人cs基于信號發(fā)射的激光武器設(shè)計(jì)
- 【閱讀提升】部編版語文五年級下冊第三單元閱讀要素解析 類文閱讀課外閱讀過關(guān)(含答案)
- 四年級上冊遞等式計(jì)算練習(xí)200題及答案
- 法院后勤部門述職報(bào)告
- 2024年國信證券招聘筆試參考題庫附帶答案詳解
- 道醫(yī)館可行性報(bào)告
評論
0/150
提交評論