




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
Java程序設(shè)計實驗第1頁共12頁實驗內(nèi)容第08周實驗枚舉泛型異常處理成績姓名學(xué)號班級軟件1班專業(yè)軟件工程日期【實驗?zāi)康摹?-字符串處理掌握枚舉的使用掌握泛型的使用掌握異常處理,【實驗內(nèi)容】1、編輯、編譯、運行下面java程序publicclassTestEnum{/*最普通的枚舉*/publicenumColorSelect{red,green,yellow,blue;}/*枚舉也可以象一般的類一樣添加方法和屬性,你可以為它添加靜態(tài)和非靜態(tài)的屬性或方法,這一切都象你在一般的類中做的那樣.*/publicenumSeason{//枚舉列表必須寫在最前面,否則編譯出錯winter,spring,summer,fall;privatefinalstaticStringlocation="Phoenix";publicstaticSeasongetBest(){if(location.equals("Phoenix"))returnwinter;elsereturnsummer;}}/*還可以有構(gòu)造方法*/publicenumTemp{/*通過括號賦值,而且必須有帶參構(gòu)造器和一屬性跟方法,否則編譯出錯*賦值必須是都賦值或都不賦值,不能一部分賦值一部分不賦值*如果不賦值則不能寫構(gòu)造器,賦值編譯也出錯*/absoluteZero(-459),freezing(32),boiling(212),paperBurns(451);privatefinalintvalue;publicintgetValue(){returnvalue;}//構(gòu)造器默認(rèn)也只能是private,從而保證構(gòu)造函數(shù)只能在內(nèi)部使用Temp(intvalue){this.value=value;}}publicstaticvoidmain(String[]args){/**枚舉類型是一種類型,用于定義變量,以限制變量的賦值賦值時通過"枚舉名.值"來取得相關(guān)枚舉中的值*/ColorSelectm=ColorSelect.blue;switch(m){/*注意:枚舉重寫了ToString(),說以枚舉變量的值是不帶前綴的*所以為blue而非ColorSelect.blue*/ casered:System.out.println("colorisred");break;casegreen:System.out.println("colorisgreen");break;caseyellow:System.out.println("colorisyellow");break;caseblue:System.out.println("colorisblue");break;}System.out.println("遍歷ColorSelect中的值");/*通過values()獲得枚舉值的數(shù)組*/for(ColorSelectc:ColorSelect.values()){System.out.println(c); } System.out.println("枚舉ColorSelect中的值有:"+ColorSelect.values().length+"個"); /*ordinal()返回枚舉值在枚舉中的索引位置,從0開始*/ System.out.println(ColorSelect.red.ordinal());//0 System.out.println(ColorSelect.green.ordinal());//1 System.out.println(ColorSelect.yellow.ordinal());//2 System.out.println(ColorSelect.blue.ordinal());//3 /*枚舉默認(rèn)實現(xiàn)了java.lang.Comparable接口*/ System.out.println(ColorSpareTo(ColorSelect.green));System.out.println(Season.getBest()); for(Tempt:Temp.values()) {/*通過getValue()取得相關(guān)枚舉的值*/System.out.println(t+"的值是"+t.getValue());}}}要求:(1)分析該程序,寫出運行結(jié)果【實驗結(jié)果與分析】分析:枚舉類型是一種類型,用于定義變量,以限制變量的賦值。賦值時通過"枚舉名.值"來取得相關(guān)枚舉中的值,賦值必須是都賦值或都不賦值,不能一部分賦值一部分不賦值。2、編輯、編譯、運行下面java程序,理解泛型classGen<T>{privateTob;//定義泛型成員變量publicGen(Tob){this.ob=ob;}publicTgetOb(){returnob;}publicvoidsetOb(Tob){this.ob=ob;}publicvoidshowTyep(){System.out.println("T的實際類型是:"+ob.getClass().getName());}}publicclassGenDemo{publicstaticvoidmain(String[]args){//定義泛型類Gen的一個Integer版本Gen<Integer>intOb=newGen<Integer>(88);intOb.showTyep();inti=intOb.getOb();System.out.println("value="+i);System.out.println("");//定義泛型類Gen的一個String版本Gen<String>strOb=newGen<String>("HelloGen!");strOb.showTyep();Strings=strOb.getOb();System.out.println("value="+s);}}要求:(1)分析該程序,寫出運行結(jié)果【實驗結(jié)果與分析】_________________________________________________________________________________3、編輯并運行下面程序,理解異常處理機制importjava.lang.Exception;publicclassTestException{staticintquotient(intx,inty)throwsMyException{//定義方法拋出異常if(y<0){//判斷參數(shù)是否小于0thrownewMyException("除數(shù)不能是負(fù)數(shù)");//異常信息}returnx/y;//返回值}publicstaticvoidmain(Stringargs[]){//主方法inta=3;intb=0;try{//try語句包含可能發(fā)生異常的語句intresult=quotient(a,b);//調(diào)用方法quotient()}catch(MyExceptione){//處理自定義異常System.out.println(e.getMessage());//輸出異常信息}catch(ArithmeticExceptione){//處理ArithmeticException異常System.out.println("除數(shù)不能為0");//輸出提示信息}catch(Exceptione){//處理其他異常System.out.println("程序發(fā)生了其他的異常");//輸出提示信息}}}classMyExceptionextendsException{//創(chuàng)建自定義異常類Stringmessage;//定義String類型變量publicMyException(StringErrorMessagr){//父類方法message=ErrorMessagr;}publicStringgetMessage(){//覆蓋getMessage()方法returnmessage;}}要求:運行程序,給出正確的程序運行結(jié)果,理解正規(guī)式的使用?!緦嶒灲Y(jié)果與分析】分析:程序捕獲到除數(shù)為0,輸出捕獲的異常。________________________________________________________________________________根據(jù)下面的要求,編輯編譯程序,并對所編寫的出進行測試假定銀行的一個存取款系統(tǒng)有兩類客戶,一類是現(xiàn)金用戶,一類是信用卡用戶。銀行對每個客戶都要登記其姓名name,并為之分配一個唯一的賬戶號碼id,現(xiàn)金用戶還要記錄其卡的類型(工資卡、借記卡、理財卡),而信用卡用戶則根據(jù)其信用級別有一定的透支限額lineOfCredit(A級10000元、B級5000元、C級2000元、D級1000元)。每種客戶都可以實現(xiàn)存deposit、取withdraw、和查詢余額getBalance,信用卡用戶還可以查詢透支情況findOverdraw。對于現(xiàn)金用戶,每次取款操作只能在賬戶實際額度balance內(nèi)操作,允許現(xiàn)金用戶改變自己的帳戶類型。(1)分析有哪些屬性和方法可以作為兩個子類的共同屬性和方法,寫出抽象類Account定義。abstractclassAccount{ privateStringname; publicStringid; privatedoublebalance; publicvoidsetBalance(doublebalance){ this.balance=balance; } publicdoublegetBalance(){ returnbalance; } publicAccount(Stringname,Stringid,doublebalance){ super(); =name; this.id=id; this.balance=balance; } publicAccount(Stringname,Stringid){ super(); =name; this.id=id; } publicvoiddeposit(doubleamount){ this.balance+=amount; }abstractvoidwithdraw(doubleamount);}(2)分析CashAccount有那些新增的屬性和方法,定義一個繼承于Account的子類CashAccount。publicclassCashAccountextendsAccount{ publicStringcashsort; publicStringgetCashsort(){ returncashsort; } publicvoidsetCashsort(Stringcashsort){ this.cashsort=cashsort; } publicCashAccount(Stringname,Stringid,doublebalance,Stringcashsort){ super(name,id,balance); this.cashsort=cashsort; } publicvoidwithdraw(doubleamount){ if(this.getBalance()>=amount){this.setBalance(this.getBalance()-amount); } else{ System.out.println("錯誤"); } }}(3)分析CreditAccount有那些新增的屬性和方法,然后定義一個繼承于Account的子類CreditAccount,添加增加的屬性和方法。publicclassCreditAccountextendsAccount{ doublestaticoverdraw; doubleoverdraw; publicCreditAccount(Stringname,Stringid,doublebalance, doublestaticoverdraw,doubleoverdraw){ super(name,id,balance); this.staticoverdraw=staticoverdraw; this.overdraw=overdraw; } publicvoidfindOverdraw(){ if(this.getBalance()<0){ System.out.print("透支"); overdraw=-(this.getBalance()); } else{ System.out.println("未透支"); } } publicvoidwithdraw(doubleamount){ if(this.getBalance()+staticoverdraw>=amount){this.setBalance(this.getBalance()-amount); } else{ System.out.println("錯誤"); } }}請按照要求編寫一個程序Test,用你所定義的類完成下列業(yè)務(wù)操作。A、用Account作為類型定義兩個變量credit和debit,分別引用CreditAccount和CashAccount的對象,并完成存款500元的操作。B、每個對象完成取款200元的操作后再次取款400元,請輸出各自的余額。C、可以通過credit查看引用對象的透支額嗎,如果不能,怎樣修改可以查看?publicclassTest{ publicstaticvoidmain(String[]args){ Accountcredit=newCreditAccount("zqq","20094070149",0,500,0);Accountdebit=newCashAccount("zsq","20094070101",0,"借記卡");credit.deposit(500);debit.deposit(500);credit.withdraw(200);debit.withdraw(200);credit.withdraw(400);debit.withdraw(400);System.out.println("creditbalance"+credit.getBalance());System.out.println("cashbalance"+debit.getBalance());}}要求:編輯上面的程序,給出運行結(jié)果,并對程序進行分析,理解掌握類、抽象類和繼承的概念與應(yīng)用?!緦嶒灲Y(jié)果與分析】C:classCreditAccountextendsAccount{ doublestaticoverdraw; doubleoverdraw; publicCreditAccount(Stringname,Stringid,doublebalance, doublestaticoverdraw,doubleoverdraw){ super(name,id,balance); this.staticoverdraw=staticoverdraw; this.overdraw=overdraw; } publicvoidfindOverdraw(){ if(this.getBalance()<0){ System.out.println("透支"); overdraw=-(this.getBalance()); System.out.println("透支額還剩:"+(staticoverdraw-=overdraw)); } else{ System.out.println("未透支"); System.out.println("透支額還剩:"+(staticoverdraw-=overdraw)); } } publicvoidwithdraw(doubleamount){ if(this.getBalance()+staticoverdraw>=amount){this.setBalance(this.getBalance()-amount); findOverdraw(); } else{ System.out.println("錯誤"); } }}分析:該程序主要體現(xiàn)抽象類只能派生且其子類的繼承方法必須實現(xiàn)的特點。______________________________________________________________________________________________設(shè)計一個程序?qū)崿F(xiàn)0~100中整數(shù)的加、減、乘、除運算。如果操作數(shù)不在0~100范圍內(nèi),拋出一個自定義異常.用JOptionPane顯示輸入、輸出要求:按照要求編寫程序,給出程序運行結(jié)果。_______________________________________________________________________________________【實驗結(jié)果與分析】importjavax.swing.JOptionPane;importjava.io.*;classTest1{ publicstaticvoidmain(String[]args) { Strings
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合作協(xié)議(五)-合同細則
- 空調(diào)購銷合作合同書
- 品牌商與供應(yīng)商采購合同范本
- 技術(shù)服務(wù)合同(實例)
- 詳解:威海房屋過戶合同辦理步驟
- 廢鋼采購及服務(wù)合同全文
- 醫(yī)療事故賠償合同協(xié)議書
- 度證券登記服務(wù)合同協(xié)議
- 雙方黨組織結(jié)對共建合同書
- 建筑試驗培訓(xùn)課件
- 盧卡奇教學(xué)講解課件
- 智慧環(huán)衛(wèi)項目建設(shè)方案
- 焊接作業(yè)現(xiàn)場環(huán)境溫度濕度記錄
- 長期護理保險待遇資格申請表
- 馬克思主義基本原理教案:第一章+教案
- 【腳手架計算書】 腳手架計算書詳細步驟
- 工程項目施工過程中的安全分析報告(建設(shè)單位)
- 我的家庭檔案-完整精講版課件
- 機房電氣系統(tǒng)設(shè)計方案
- 林木種子質(zhì)量分級
- 白條豬分割測算參考表
評論
0/150
提交評論