版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
內部類匿名類異常類斷言難點異常類主要內容6.1內部類類的成員:成員變量、成員方法Java支持在一個類中聲明另一個類,這樣的類稱作內部類,而包含內部類的類稱為內部類的外嵌類。內部類可以訪問外嵌類的成員變量、成員方法。外嵌類的類體中可以用內部類聲明對象,作為外嵌類的成員。內部類的類體中不可以聲明類變量和類方法。內部類能夠訪問外部內的一切成員變量和方法,包括私有的,而實現接口或繼承類做不到。內部類例publicclassChina{privateStringsong="義勇軍進行曲";publicvoidtest(){}
classBeijing{Stringname="北京";voidspeak(){System.out.println("Ourcapitalis:"+name+",Ournationalsongis:"+song);}}publicstaticvoidmain(String[]args){Chinac=newChina();c.newBeijing().speak();}}
6.2匿名類匿名內部類:子類去掉類聲明的類體優(yōu)點:使代碼更加簡潔、緊湊,模塊化程度更高。匿名內部類兩種實現方式:繼承一個類,重寫其方法;實現一個接口(可以是多個),實現其方法。匿名類是一個子類,用于臨時創(chuàng)建一個內部類對象,不必單獨去定義該子類匿名類體內可以對父類、抽象類以及接口的方法進行重寫由于匿名類沒有類名,因此不能重用這個對象創(chuàng)建形式:newPeople(){
匿名類類體};匿名類在創(chuàng)建對象時,要直接使用父類的構造方法完成三件事:1、創(chuàng)建一個Speak的子類,該子類為匿名類2、改寫Speak中的方法speakHello()3、返回該子類的引用,賦給Speakspeak和類有關的匿名類和接口有關的匿名類
Java允許直接用接口名和一個類體創(chuàng)建一個匿名對象,此類體被認為是實現了Computable接口的類去掉類聲明后的類體,稱作匿名類。下列代碼就是用實現了Computable接口的類(匿名類)創(chuàng)建對象:
newComputable(){實現接口的匿名類的類體}
6.3異常類概念異常是指程序在執(zhí)行過程中出現的意外事件。特點通常會使程序的正常流程被打斷能否很好的處理運行時刻的異常情況是一個程序健康的標志輸入數據不符合要求除數為0數組的下標越界少了所需加載的類打開不存在的文件網絡無法連接操作數超出所要求的范圍自定義異常,要求程序處理…什么時候會發(fā)生異常?readfile{
try{ openthefile;//打開文件
dertermineitssize;//判斷大小
allocatethatmuchmemory;//分配內存
readthefileintomemory;//將文件讀入內存
closethefile;//關閉文件 }
catch(fileopenfailed){do
sth. }
catch(sizederterminedfailed){do
sth.}
catch(memoryallocatedfailed){do
sth.}
catch(readfailed){do
sth. }
catch(fileclosefailed){do
sth.}}正常業(yè)務邏輯異常捕捉使用Java的異常處理機制,讀、寫和調試代碼變得清晰。它把錯誤的代碼和正常的代碼分開。Java中的處理方法?錯誤:指的是系統(tǒng)異?;蜻\行環(huán)境出現的異常,這些異常一般是很嚴重的異常,即使捕捉到通常也無法處理,例如Java虛擬機異常指的是一般的異常,例如,輸入/輸出(I/O)異常。對這些異常應用程序可以進行處理1、Java中的異常類2、異常處理方法一旦捕獲異常,馬上進行處理捕獲異常,但并不處理,或只部分處理重新拋出異常Java中如何進行異常處理Java異常處理:try、catch、finally、throw、throws5個關鍵字。在方法中手動拋出異常聲明方法有可能拋出的各種異常類
tryfinallycatchthrowsthrow有可能會出現異常的代碼一定要放到try代碼塊中不管有沒有異常都要執(zhí)行的代碼捕獲和處理異常2、異常處理方法(1)try
{//業(yè)務實現代碼}
catch
(Type1id1)
{處理異常類型1語句;}
catch
(Typenid2)
{處理異常類型2語句;} ……//其它catch語句
[finally { 無論是否拋出異常都要執(zhí)行的語句;}]{}必不可少,即使只有一句代碼有try,則catch、finally必須出現其一。Catch塊可以有多個,從上往下依次判斷,只要捕捉到一個異常,下面的catch塊不會執(zhí)行三、異常的拋出和處理throws語句指明方法中可能要產生的異常類型,由調用者進行異常處理。在拋出的方法定義后加上
throwsException功能:在調用方法和可能產生的異常的被調用方法之間建立起系統(tǒng)處理異常所需的聯系voidf()throwsTooBig,TooSmall,OldStyle{ //bodyoff()}TestDiv(寫一個方法,throws異常)返回publicstaticintdiv()throwsException{Stringa=JOptionPane.showInputDialog("請輸入被除數:");Stringb=JOptionPane.showInputDialog("請輸入除數:");System.out.print(a+"/"+b+"=");inta1=Integer.parseInt(a);intb1=Integer.parseInt(b);intc=a1/b1;System.out.println(c);returnc;}三、異常的拋出和處理如果需要在程序中自行拋出異常,應使用throw語句throw語句拋出的不是異常類,而是一個異常實例,而且每次只能拋出一個異常實例throws是用來聲明一個方法可能拋出的所有異常信息throw則是指拋出的一個具體的異常類型;通常在一個方法(類)的聲明處通過throws聲明方法(類)可能拋出的異常信息,而在方法(類)內部通過throw聲明一個具體的異常信息;
throws通常不用顯示的捕獲異常,可由系統(tǒng)自動將所有捕獲的異常信息拋給上級方法;
throw則需要用戶自己捕獲相關的異常,而后在對其進行相關包裝,最后在將包裝后的異常信息拋出。
Throws與Throw區(qū)別自定義異常類通過繼承Exception類或它的子類,實現自定義異常類。Exception類有兩個構造函數publicException();publicException(Strings);其中s表示對異常的描述說明Exception類的常用方法:publicvoidprintStackTrace();返回調用棧信息publicStringtoString();返回異常對象的字符串表示publicStringgetMessage();返回異常對象中攜帶的出錯信息對于自定義異常,必須采用throw語句拋出異常,這種類型的異常不會自行產生。總體上分為兩步:第1步:定義異常類第2步:定義異常對象,并拋出該對象。自定義異常類第1步:定義異常類classuserExceptionextendsException{ intn=0;//計數器
userException(){n++; } userException(Strings){ super(s); n++; }
Stringshow(){ return"自定義異常對象:"+n; }}自定義異常類第2步:定義異常對象,并拋出該對象。publicclasstestException{ staticvoidTest()throwsUserException{
userExceptione; e=newuserException("自定義異常"); throwe; } publicstaticvoidmain(Stringargs[]){ try{Test();
}catch(userExceptione){ System.out.println(e.show()); } }}自定義異常類6.4斷言Java1.4以后引入斷言機制主要用于監(jiān)視代碼的執(zhí)行狀態(tài)兩種格式:assertbooleanExperession;
如果booleanExperession為真,繼續(xù)執(zhí)行,否則在此處停止執(zhí)行assertbooleanExperession:messageExpression
如果booleanExperession
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貨物陸運合同范文范本模板
- 物業(yè)管理的噪音與污染管理
- 我國自動駕駛車路協(xié)同發(fā)展現狀分析
- 人臍帶間充質干細胞通過抑制NLRP3介導的滑膜細胞焦亡減輕膝骨關節(jié)炎
- 擴張法與Nagata法治療小耳畸形的療效對比分析
- 2025年岳麓版選擇性必修2歷史上冊階段測試試卷含答案
- 智能家居產品銷售代理合同(2篇)
- 2025年外研銜接版九年級歷史下冊月考試卷含答案
- 服裝購買合同協(xié)議書范本(2篇)
- 2025年外研版三年級起點選擇性必修1歷史上冊階段測試試卷
- 中小商業(yè)銀行數字化轉型現狀及對策研究
- 親子非暴力溝通培訓講座
- 保險投訴處理流程培訓
- JJG 707-2014扭矩扳子行業(yè)標準
- 2025財年美國國防預算概覽-美國國防部(英)
- 2024年江西省南昌市中考一模數學試題(含答案)
- 《采暖空調節(jié)能技術》課件
- CONSORT2010流程圖(FlowDiagram)【模板】文檔
- 游戲綜合YY頻道設計模板
- 中興ZCTP 5GC高級工程師認證考試題庫匯總(含答案)
- 大學生創(chuàng)新創(chuàng)業(yè)教程PPT全套完整教學課件
評論
0/150
提交評論