版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
內(nèi)部類匿名類異常類斷言難點(diǎn)異常類主要內(nèi)容6.1內(nèi)部類類的成員:成員變量、成員方法Java支持在一個(gè)類中聲明另一個(gè)類,這樣的類稱作內(nèi)部類,而包含內(nèi)部類的類稱為內(nèi)部類的外嵌類。內(nèi)部類可以訪問外嵌類的成員變量、成員方法。外嵌類的類體中可以用內(nèi)部類聲明對(duì)象,作為外嵌類的成員。內(nèi)部類的類體中不可以聲明類變量和類方法。內(nèi)部類能夠訪問外部?jī)?nèi)的一切成員變量和方法,包括私有的,而實(shí)現(xiàn)接口或繼承類做不到。內(nèi)部類例publicclassChina{privateStringsong="義勇軍進(jìn)行曲";publicvoidtest(){}
classBeijing{Stringname="北京";voidspeak(){System.out.println("Ourcapitalis:"+name+",Ournationalsongis:"+song);}}publicstaticvoidmain(String[]args){Chinac=newChina();c.newBeijing().speak();}}
6.2匿名類匿名內(nèi)部類:子類去掉類聲明的類體優(yōu)點(diǎn):使代碼更加簡(jiǎn)潔、緊湊,模塊化程度更高。匿名內(nèi)部類兩種實(shí)現(xiàn)方式:繼承一個(gè)類,重寫其方法;實(shí)現(xiàn)一個(gè)接口(可以是多個(gè)),實(shí)現(xiàn)其方法。匿名類是一個(gè)子類,用于臨時(shí)創(chuàng)建一個(gè)內(nèi)部類對(duì)象,不必單獨(dú)去定義該子類匿名類體內(nèi)可以對(duì)父類、抽象類以及接口的方法進(jìn)行重寫由于匿名類沒有類名,因此不能重用這個(gè)對(duì)象創(chuàng)建形式:newPeople(){
匿名類類體};匿名類在創(chuàng)建對(duì)象時(shí),要直接使用父類的構(gòu)造方法完成三件事:1、創(chuàng)建一個(gè)Speak的子類,該子類為匿名類2、改寫Speak中的方法speakHello()3、返回該子類的引用,賦給Speakspeak和類有關(guān)的匿名類和接口有關(guān)的匿名類
Java允許直接用接口名和一個(gè)類體創(chuàng)建一個(gè)匿名對(duì)象,此類體被認(rèn)為是實(shí)現(xiàn)了Computable接口的類去掉類聲明后的類體,稱作匿名類。下列代碼就是用實(shí)現(xiàn)了Computable接口的類(匿名類)創(chuàng)建對(duì)象:
newComputable(){實(shí)現(xiàn)接口的匿名類的類體}
6.3異常類概念異常是指程序在執(zhí)行過程中出現(xiàn)的意外事件。特點(diǎn)通常會(huì)使程序的正常流程被打斷能否很好的處理運(yùn)行時(shí)刻的異常情況是一個(gè)程序健康的標(biāo)志輸入數(shù)據(jù)不符合要求除數(shù)為0數(shù)組的下標(biāo)越界少了所需加載的類打開不存在的文件網(wǎng)絡(luò)無法連接操作數(shù)超出所要求的范圍自定義異常,要求程序處理…什么時(shí)候會(huì)發(fā)生異常?readfile{
try{ openthefile;//打開文件
dertermineitssize;//判斷大小
allocatethatmuchmemory;//分配內(nèi)存
readthefileintomemory;//將文件讀入內(nèi)存
closethefile;//關(guān)閉文件 }
catch(fileopenfailed){do
sth. }
catch(sizederterminedfailed){do
sth.}
catch(memoryallocatedfailed){do
sth.}
catch(readfailed){do
sth. }
catch(fileclosefailed){do
sth.}}正常業(yè)務(wù)邏輯異常捕捉使用Java的異常處理機(jī)制,讀、寫和調(diào)試代碼變得清晰。它把錯(cuò)誤的代碼和正常的代碼分開。Java中的處理方法?錯(cuò)誤:指的是系統(tǒng)異?;蜻\(yùn)行環(huán)境出現(xiàn)的異常,這些異常一般是很嚴(yán)重的異常,即使捕捉到通常也無法處理,例如Java虛擬機(jī)異常指的是一般的異常,例如,輸入/輸出(I/O)異常。對(duì)這些異常應(yīng)用程序可以進(jìn)行處理1、Java中的異常類2、異常處理方法一旦捕獲異常,馬上進(jìn)行處理捕獲異常,但并不處理,或只部分處理重新拋出異常Java中如何進(jìn)行異常處理Java異常處理:try、catch、finally、throw、throws5個(gè)關(guān)鍵字。在方法中手動(dòng)拋出異常聲明方法有可能拋出的各種異常類
tryfinallycatchthrowsthrow有可能會(huì)出現(xiàn)異常的代碼一定要放到try代碼塊中不管有沒有異常都要執(zhí)行的代碼捕獲和處理異常2、異常處理方法(1)try
{//業(yè)務(wù)實(shí)現(xiàn)代碼}
catch
(Type1id1)
{處理異常類型1語(yǔ)句;}
catch
(Typenid2)
{處理異常類型2語(yǔ)句;} ……//其它c(diǎn)atch語(yǔ)句
[finally { 無論是否拋出異常都要執(zhí)行的語(yǔ)句;}]{}必不可少,即使只有一句代碼有try,則catch、finally必須出現(xiàn)其一。Catch塊可以有多個(gè),從上往下依次判斷,只要捕捉到一個(gè)異常,下面的catch塊不會(huì)執(zhí)行三、異常的拋出和處理throws語(yǔ)句指明方法中可能要產(chǎn)生的異常類型,由調(diào)用者進(jìn)行異常處理。在拋出的方法定義后加上
throwsException功能:在調(diào)用方法和可能產(chǎn)生的異常的被調(diào)用方法之間建立起系統(tǒng)處理異常所需的聯(lián)系voidf()throwsTooBig,TooSmall,OldStyle{ //bodyoff()}TestDiv(寫一個(gè)方法,throws異常)返回publicstaticintdiv()throwsException{Stringa=JOptionPane.showInputDialog("請(qǐng)輸入被除數(shù):");Stringb=JOptionPane.showInputDialog("請(qǐng)輸入除數(shù):");System.out.print(a+"/"+b+"=");inta1=Integer.parseInt(a);intb1=Integer.parseInt(b);intc=a1/b1;System.out.println(c);returnc;}三、異常的拋出和處理如果需要在程序中自行拋出異常,應(yīng)使用throw語(yǔ)句throw語(yǔ)句拋出的不是異常類,而是一個(gè)異常實(shí)例,而且每次只能拋出一個(gè)異常實(shí)例throws是用來聲明一個(gè)方法可能拋出的所有異常信息throw則是指拋出的一個(gè)具體的異常類型;通常在一個(gè)方法(類)的聲明處通過throws聲明方法(類)可能拋出的異常信息,而在方法(類)內(nèi)部通過throw聲明一個(gè)具體的異常信息;
throws通常不用顯示的捕獲異常,可由系統(tǒng)自動(dòng)將所有捕獲的異常信息拋給上級(jí)方法;
throw則需要用戶自己捕獲相關(guān)的異常,而后在對(duì)其進(jìn)行相關(guān)包裝,最后在將包裝后的異常信息拋出。
Throws與Throw區(qū)別自定義異常類通過繼承Exception類或它的子類,實(shí)現(xiàn)自定義異常類。Exception類有兩個(gè)構(gòu)造函數(shù)publicException();publicException(Strings);其中s表示對(duì)異常的描述說明Exception類的常用方法:publicvoidprintStackTrace();返回調(diào)用棧信息publicStringtoString();返回異常對(duì)象的字符串表示publicStringgetMessage();返回異常對(duì)象中攜帶的出錯(cuò)信息對(duì)于自定義異常,必須采用throw語(yǔ)句拋出異常,這種類型的異常不會(huì)自行產(chǎn)生。總體上分為兩步:第1步:定義異常類第2步:定義異常對(duì)象,并拋出該對(duì)象。自定義異常類第1步:定義異常類classuserExceptionextendsException{ intn=0;//計(jì)數(shù)器
userException(){n++; } userException(Strings){ super(s); n++; }
Stringshow(){ return"自定義異常對(duì)象:"+n; }}自定義異常類第2步:定義異常對(duì)象,并拋出該對(duì)象。publicclasstestException{ staticvoidTest()throwsUserException{
userExceptione; e=newuserException("自定義異常"); throwe; } publicstaticvoidmain(Stringargs[]){ try{Test();
}catch(userExceptione){ System.out.println(e.show()); } }}自定義異常類6.4斷言Java1.4以后引入斷言機(jī)制主要用于監(jiān)視代碼的執(zhí)行狀態(tài)兩種格式:assertbooleanExperession;
如果booleanExperession為真,繼續(xù)執(zhí)行,否則在此處停止執(zhí)行assertbooleanExperession:messageExpression
如果booleanExperession
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度生態(tài)園林建設(shè)綠化種樹承包合同2篇
- 2025年度養(yǎng)老院老人外出活動(dòng)責(zé)任分擔(dān)協(xié)議3篇
- 2025年度網(wǎng)約車司機(jī)兼職車輛使用協(xié)議3篇
- 2025年度男女朋友共同創(chuàng)業(yè)合作協(xié)議書3篇
- 2025年度海洋工程機(jī)械設(shè)備租賃協(xié)議2篇
- 二零二五年度高原特色農(nóng)產(chǎn)品進(jìn)出口銷售合同3篇
- 2025年度養(yǎng)殖產(chǎn)品市場(chǎng)銷售合作協(xié)議書2篇
- 2025年度公司管理人員兼職與聘用合同3篇
- 2025年度戶外廣告牌安裝與夜間照明安全協(xié)議3篇
- 二零二五年度農(nóng)村土地經(jīng)營(yíng)權(quán)流轉(zhuǎn)與農(nóng)業(yè)產(chǎn)業(yè)扶貧合作合同3篇
- 小學(xué)生心理健康講座5
- 上海市市轄區(qū)(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)部編版期末考試((上下)學(xué)期)試卷及答案
- 國(guó)家職業(yè)技術(shù)技能標(biāo)準(zhǔn) X2-10-07-18 陶瓷工藝師(試行)勞社廳發(fā)200633號(hào)
- 人教版八年級(jí)上冊(cè)生物全冊(cè)教案(完整版)教學(xué)設(shè)計(jì)含教學(xué)反思
- 2024年銀行考試-銀行間本幣市場(chǎng)交易員資格考試近5年真題附答案
- 人教版小學(xué)四年級(jí)數(shù)學(xué)上冊(cè)期末復(fù)習(xí)解答題應(yīng)用題大全50題及答案
- 冀教版五年級(jí)上冊(cè)脫式計(jì)算題100道及答案
- 你是排長(zhǎng)我是兵(2022年山東濟(jì)南中考語(yǔ)文試卷記敘文閱讀題及答案)
- 《ISO56001-2024創(chuàng)新管理體系 - 要求》之22:“8運(yùn)行-8.2 創(chuàng)新行動(dòng)”解讀和應(yīng)用指導(dǎo)材料(雷澤佳編制-2024)
- 廣東省中山市2023-2024學(xué)年高三物理上學(xué)期第五次統(tǒng)測(cè)試題含解析
- 《體育科學(xué)研究方法》題庫(kù)
評(píng)論
0/150
提交評(píng)論