版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
5ObjectequalsObjecttoStringAPIObject這個(gè)類。ObjectAnimal類時(shí),我們發(fā)現(xiàn)我們并沒有寫成員方法,但是能調(diào)用,這是因?yàn)樗^承Object類.ObjectJava語言中的根類,即所有類的父類。它中描述的所有方法子類都可以使Object。ObjectequalstoString方法,其他方法后面課程equals較。Object類中的equals方法的就是==比較運(yùn)算符。String對象,equals方法比較一下,你看看會(huì)有什么結(jié)論?為什么?Stringequals方法,改成比較內(nèi)容了equals方法根據(jù)對象的屬性值進(jìn)行比較。如下代碼演 由于要根據(jù)指定類的屬性進(jìn)行比較,這時(shí)只要覆蓋Objectequals方法extendsintage//復(fù)寫父類的equalspublicpublicbooleanequals(Objectobj)//判斷當(dāng)前調(diào)用equalsif(this==obj){return}if(!(objreturn}//將obj向 為 p=returnthis.age==}}注意Objectequalspublicbooleanequals(ObjecttoStringtoString方法返回該對象的字符串表示,其實(shí)該字符串內(nèi)容就是對象的類型+@+內(nèi)存toStringtoString方法返回的結(jié)果是內(nèi)存地址,而在開發(fā)中,經(jīng)常需要按照對象的屬性得extendsintage 類的屬性重寫toString方publicStringtoString()return[age="+age+}}Java等面向?qū)ο蟮木幊陶Z言中,異常本身是一個(gè)類,產(chǎn)生異常就是創(chuàng)建異常對象并拋出了一個(gè)異常對象。Java處理異常的方式是中斷處理。其下有兩個(gè)子類:ErrorExceptionException。捕獲處理,將異常獲取,使用try/catch }方法上加throws 先運(yùn)行下面的程序,程序會(huì)產(chǎn)生一個(gè)數(shù)組索引越界異常ArrayIndexOfBoundception。classclasspublicstaticintge ement(int[]arr,intindex){intelement=arr[index];return}}classclasspublicstaticvoidmain(String[]args)int[]int[]arr=intnum=ArrayTools.ge }}2.4.1JVM拋出異常比如代碼:geementmainpublicstaticvoidmain(String[]args)//int[]arr=intelement=geement(arr);}//publicstaticintgeement(int[]intnumarr[4];//這里可能出錯(cuò),//return}throwthrow異常對象;throwthrownew異常類名(參數(shù)throwthrownewNullPointerException(" 的arr數(shù)組不存在thrownew classclasspublicstaticint ement(int[]arr,intindex)throw拋出異常對象后,方法已經(jīng)無法繼續(xù)運(yùn)算。這thrownewNullPointerException("arr指向的數(shù)組不存在}if(index<0||thrownew }intelement=arr[index];returnelement;}}classclassExceptionDemo3publicstaticvoidmain(Stringargsint[]arr={34,12,67};//創(chuàng)建數(shù)組intnum= ement(null,2//intnum );//}}下面是異常類ArrayIndexOutOfBoundception與NullPointerException的構(gòu)2.4.2異常行,讓調(diào)用者去處理。 修飾符返回值類型方法名(參數(shù))throws異常類名1,異常類名2…{ *如果定義功能時(shí)有問題發(fā)生需要報(bào)告給調(diào)用者。可以通過在方法上使用throws關(guān)鍵字進(jìn) publicclassTestpublicstaticvoidmain(String[]args)throwsFileNotFoundException當(dāng)我們創(chuàng)建字符輸入流對象的時(shí) 也就是調(diào)用FileReader構(gòu)造方法的時(shí)候產(chǎn)生了常當(dāng)這個(gè)構(gòu)造有異常的時(shí)候,必須報(bào)告給調(diào)用者,這時(shí)我們需要在方法上使用throws明FileReaderfr=new}}}throws用于進(jìn)行異常類的,若該方法可能有多種異常情況產(chǎn)生,那么在throws后}}}publicclassTestpublicstaticvoidmain(String[]args)throwsFileNotFoundException,IOExceptionnewFileReader("a.txt")產(chǎn)生了FileNotFoundExceptionFileReaderfr=newfr.read()這個(gè)功能中存在IOExceptionintc=2.4.3trytry}catch(}finallyfinally}publicclasspublicclassTestpublicstaticvoidmain(String[]args)FileReaderfr=null;try{ fr=newFileReader("a.txt");intc=fr.read();catch(IOExceptione括號中需要定義什么呢?try中拋出的是什么異常,在括號中就定 }if(fr!=null){//try//}catch(IOExceptione){}}}}}如果父類方法拋出了多個(gè)異常,子類覆蓋父類方法時(shí),只能拋出相同的異?;蛘呤撬淖蛹痶ry/catchfinally代碼塊,其中的代碼一定會(huì)被執(zhí)行,通常用于資代碼演示voidvoidshow不用throws}catch(Exception}}trycatchvoidvoidshow不用throws}catch(XxxException}catch(YyyException}catch(ZzzException}}常之間有子父類異常的關(guān)系,那么子類異常要求在上面的catch處理,父類異常在下面的catch處理。tryfinallycatch,所以一jvmfinally。只為關(guān)閉資源。voidvoidshow(){//需要throws}finally}}補(bǔ)充練[與大綱無關(guān)ifinallyi值,則最終的返回值仍為ii的值已經(jīng)被修改了補(bǔ)充二*方法中拋出異常,不是RuntimeException* *方法中拋出的異常,都是RuntimeException*拋出的是運(yùn)行時(shí)期異常,無需在方法上寫*publicclassRuntimeExceptionDemopublicstaticvoidmain(String[]args){}publicstaticvoid //thrownew //throw//thrownew}}常,這些異常很可能在JDK中沒有定義過,例如負(fù)數(shù)問題,考試成績負(fù)數(shù)問題.那么能不能java通過類進(jìn)行的描述。并將問題封裝成對象,異常就是將問題JDKJava的這種機(jī)制,我通過閱讀異常源代碼:發(fā)現(xiàn)java中所有的異常類,都是繼承Throwable,或者繼承Throwable的子類。這樣該異常才可以被throw拋出。publicclasspublicclassNullPointerExceptionextendsRuntimeExceptionpublicNullPointerException()}publicNullPointerException(Strings)}}}ClassClassextendsException//或繼承public異常名}public異常名(Strings){}}classclassMyExceptionextends為什么要定義構(gòu)造函數(shù),因?yàn)榭吹絁avapublic}publicMyException(Stringmessage)super(message);//如果自定義異常需要異常信息,可以通過調(diào)用父類的帶有字符串}}classclassMyExceptionextends}MyException(Stringmessage)super(message);//如果自定義異常需要異常信息,可以通過調(diào)用父類的帶有字符串}}定義類,包含name與age兩個(gè)成員變量在類的有參數(shù)構(gòu)造方法中進(jìn)行范圍的判斷若為負(fù)數(shù)或大于150歲則拋出NoAgeException異常,異常提示信息“數(shù)值。classclassNoAgeExceptionextendsException{NoAgeException(){}NoAgeException(Stringmessage){}}類{privateStringname;privateintage;(Stringname,intage)throwsNoAgeExceptionif(age<0||{thrownew }=name;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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024至2030年中國干濕式除塵器數(shù)據(jù)監(jiān)測研究報(bào)告
- 2024至2030年中國塑料線槽行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024至2030年中國合金鑄棒數(shù)據(jù)監(jiān)測研究報(bào)告
- 2024至2030年中國冷凍陳列柜行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024年中國絞磨機(jī)市場調(diào)查研究報(bào)告
- 2024年中國氣眼市場調(diào)查研究報(bào)告
- 新疆2020年中考化學(xué)真題(含答案)
- 2024年中國家庭影院功放音響市場調(diào)查研究報(bào)告
- 2024年中國單孔雙聯(lián)龍頭市場調(diào)查研究報(bào)告
- 2024年中國交流變頻柜市場調(diào)查研究報(bào)告
- 2024-2025學(xué)年魯教版(五四制)八年級數(shù)學(xué)上冊期中測試題
- 2024年大學(xué)生信息素養(yǎng)大賽(省賽)練習(xí)考試題庫(含答案)
- 《珍愛生命遠(yuǎn)離火災(zāi)》消防安全教育課件
- 第四單元測試卷(單元測試)-2024-2025學(xué)年六年級上冊統(tǒng)編版語文
- DL∕T 2041-2019 分布式電源接入電網(wǎng)承載力評估導(dǎo)則
- DL∕T 618-2022 氣體絕緣金屬封閉開關(guān)設(shè)備現(xiàn)場交接試驗(yàn)規(guī)程
- 外事實(shí)務(wù)智慧樹知到期末考試答案章節(jié)答案2024年山東外事職業(yè)大學(xué)
- 幼兒園安全教育課件:《我會(huì)保護(hù)眼睛》
- 中醫(yī)治療“傷筋”醫(yī)案57例
- 口腔頜面部局部麻醉并發(fā)癥的臨床應(yīng)急操作
- 蘑菇石貼面施工組織
評論
0/150
提交評論