《JAVA程序設(shè)計(jì)》課件-項(xiàng)目六 異常_第1頁(yè)
《JAVA程序設(shè)計(jì)》課件-項(xiàng)目六 異常_第2頁(yè)
《JAVA程序設(shè)計(jì)》課件-項(xiàng)目六 異常_第3頁(yè)
《JAVA程序設(shè)計(jì)》課件-項(xiàng)目六 異常_第4頁(yè)
《JAVA程序設(shè)計(jì)》課件-項(xiàng)目六 異常_第5頁(yè)
已閱讀5頁(yè),還剩90頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

處理學(xué)生成績(jī)運(yùn)算中的異常問(wèn)題JAVA程序設(shè)計(jì)任務(wù)分析在學(xué)生成績(jī)管理系統(tǒng)中,可以使用異常處理機(jī)制處理成績(jī)計(jì)算過(guò)程中出現(xiàn)的一些錯(cuò)誤。相關(guān)知識(shí)與技術(shù)6.1異常處理概述6.1異常處理概述一、運(yùn)行錯(cuò)誤在程序運(yùn)行時(shí)經(jīng)常會(huì)出現(xiàn)一些非正常的現(xiàn)象,如死循環(huán)、非正常退出等,稱(chēng)為運(yùn)行錯(cuò)誤6.1異常處理概述一、運(yùn)行錯(cuò)誤非致命性錯(cuò)誤致命性錯(cuò)誤如程序進(jìn)入死循環(huán),遞歸無(wú)法結(jié)束等,這類(lèi)現(xiàn)象稱(chēng)為錯(cuò)誤,錯(cuò)誤只能在編譯階段解決,運(yùn)行時(shí)程序本身無(wú)法解決。如運(yùn)算時(shí)除數(shù)為0,打開(kāi)一個(gè)不存在的文件等,這類(lèi)現(xiàn)象稱(chēng)為異常。在源程序中加入異常處理代碼,當(dāng)程序運(yùn)行中出現(xiàn)異常時(shí),由異常處理代碼調(diào)整程序運(yùn)行方向,使程序仍可繼續(xù)運(yùn)行直至正常結(jié)束。根據(jù)錯(cuò)誤性質(zhì)將運(yùn)行錯(cuò)誤可分為兩類(lèi):6.1異常處理概述二、異常處理機(jī)制1)拋出異常當(dāng)程序發(fā)生異常時(shí),產(chǎn)生一個(gè)異常事件,生成一個(gè)異常對(duì)象,并把它提交給運(yùn)行系統(tǒng),再由運(yùn)行系統(tǒng)尋找相應(yīng)的代碼來(lái)處理異常,這個(gè)過(guò)程稱(chēng)為拋出(throw)一個(gè)異常。6.1異常處理概述二、異常處理機(jī)制2)捕獲異常發(fā)現(xiàn)異常的代碼可以“拋出”一個(gè)異常,運(yùn)行系統(tǒng)“捕獲”該異常,交由相應(yīng)代碼進(jìn)行異常處理。即:異常拋出后,運(yùn)行時(shí)系統(tǒng)從生成對(duì)象的代碼開(kāi)始,沿方法的調(diào)用棧逐層回溯查找,直到找到包含相應(yīng)處理的方法,并把異常對(duì)象交給該方法為止,這個(gè)過(guò)程稱(chēng)為捕獲(catch)一個(gè)異常。6.1異常處理概述二、異常處理機(jī)制錯(cuò)誤類(lèi)Error:Error類(lèi)對(duì)象是由Java虛擬機(jī)生成并拋給系統(tǒng),有內(nèi)存內(nèi)存溢出錯(cuò)、棧溢出錯(cuò)等,通常,Java程序不對(duì)錯(cuò)誤進(jìn)行處理。異常類(lèi)Exception:Exception類(lèi)對(duì)象是Java程序拋出和處理的對(duì)象。它有各種不同的子類(lèi)分別對(duì)應(yīng)于不同類(lèi)型的異常,如除數(shù)為0、數(shù)組下標(biāo)越界等。Java通過(guò)錯(cuò)誤類(lèi)(Error)和異常類(lèi)(Exception)來(lái)處處理錯(cuò)誤和異常,而它們都是Throwable類(lèi)的子類(lèi)。3)異常處理的類(lèi)層次6.1異常處理概述三、Java中的常用異常類(lèi)1執(zhí)行異常即運(yùn)行時(shí)異常,繼承于RuntimeException。Java編譯器允許程序不對(duì)它們做出處理。主要的運(yùn)行時(shí)異常:ArithmeticException:算術(shù)運(yùn)算異常ArrayIndexOutOfBoundsException:數(shù)組下標(biāo)越界ClassCastException:類(lèi)對(duì)象強(qiáng)迫轉(zhuǎn)換不當(dāng)異常NumberFormatException:數(shù)值格式異常IndexOutOfBoundsException:索引超范圍異常NegativeException:數(shù)組負(fù)值下標(biāo)NullPointerException:空指針異常6.1異常處理概述三、Java中的常用異常類(lèi)2檢查異常除異常異常外,其余的子類(lèi)是屬于檢查異常類(lèi)也稱(chēng)為非運(yùn)行時(shí)異常。它們都在java.lang包中定義。Java編譯器要求程序必須對(duì)這些異常進(jìn)行捕獲或者拋棄。主要的檢查異常:ClassNotFoundException:找不到類(lèi)的異常IlledaAccessException:類(lèi)定義不明確異常InterruptedException:線程異常6.1異常處理概述四、Exception異常類(lèi)的方法實(shí)例方法構(gòu)造方法類(lèi)聲明publicclassExceptionextendsThrowablepublicException()

publicException(Strings)publicStringgetMessage();

//獲得異常信息

publicvoidprintStackTrace();

//顯示異常棧跟蹤信息相關(guān)知識(shí)與技術(shù)6.2異常處理方法6.2異常處理方法把異常拋給上一層調(diào)用它的方法中,由該方法進(jìn)行異常處理或繼續(xù)拋給上一層。通過(guò)try-catch語(yǔ)句塊處理異常,把可能發(fā)生異常的語(yǔ)句放在try語(yǔ)句塊中,catch捕獲異常并處理。0201Java程序?qū)Ξ惓L幚碛袃煞N方法6.2異常處理方法一、try-catch語(yǔ)句塊try

{<語(yǔ)句塊1>//可能產(chǎn)生異常的代碼

}

catch(ExceptionType1e)

{<語(yǔ)句塊2>//捕獲某種異常對(duì)象時(shí)進(jìn)行處理的代碼

}

finally

{<語(yǔ)句塊3>//必須執(zhí)行的代碼,無(wú)論是否捕獲到異常

}格式:6.2異常處理方法一、try-catch語(yǔ)句塊catch語(yǔ)句可以有一個(gè)或多個(gè),但至少要有一個(gè)catch語(yǔ)句,finally語(yǔ)句可以省略。try-catch-finally語(yǔ)句的作用是:當(dāng)try語(yǔ)句中的代碼產(chǎn)生異常時(shí),根據(jù)異常的不同,由不同的catch語(yǔ)句中的代碼對(duì)異常進(jìn)行捕獲并處理,如果沒(méi)有異常,則catch語(yǔ)句不執(zhí)行,而無(wú)論是否捕獲到異常都必須執(zhí)行finally中的代碼。6.2異常處理方法二、方法使用throws拋出異常Java提供了另一種處理異常的方式,將出現(xiàn)的異常向調(diào)用它的上一層方法拋出,由上一層方法處理或繼續(xù)向上一層拋出。格式:[修飾符]返回類(lèi)型方法名(參數(shù)列表)throws異常列表

{......}

如:publicintread()throwsException

{......}6.2異常處理方法三、使用throw拋出異常拋出異常的既可以是Java運(yùn)行系統(tǒng),也可以是程序員自己編寫(xiě)的代碼,既在try語(yǔ)句中的代碼本身不會(huì)產(chǎn)生異常,而由程序員故意拋出異常。格式:throw<異常對(duì)象>相關(guān)知識(shí)與技術(shù)6.3自定義異常類(lèi)6.3自定義異常類(lèi)三、使用throw拋出異常雖然Java已經(jīng)預(yù)定義了很多異常類(lèi),但有的情況下,程序員不僅需要自己拋出異常,還需要?jiǎng)?chuàng)建自己的異常類(lèi)。這時(shí)可以通過(guò)創(chuàng)建Exception類(lèi)的子類(lèi)來(lái)定義自己的異常類(lèi)。自定義異常類(lèi)的格式:class自定義異常extends父異常類(lèi)名

{

類(lèi)體

}相關(guān)知識(shí)與技術(shù)6.4Java常用類(lèi)6.4Java常用類(lèi)一、API概述API(ApplicationProgammingInterface)應(yīng)用程序編程接口。包是Java提供的一種區(qū)別類(lèi)名字空間的機(jī)制,是類(lèi)的組織方式,包對(duì)應(yīng)一個(gè)文件夾,包中還可以再有包,稱(chēng)為包等級(jí)。Java中提到的API,就是JDK提供的各種功能的Java類(lèi)。同一包中類(lèi)不能重復(fù),不同包中的類(lèi)可以同名。6.4Java常用類(lèi)一、API概述Java常用包java.lang語(yǔ)言包java.util實(shí)用包java.awt抽象窗口工具包java.text文本包java.io輸入輸出流的文件包java.applet小應(yīng)用程序包網(wǎng)絡(luò)功能包java.sql數(shù)據(jù)庫(kù)功能包6.4Java常用類(lèi)二、System類(lèi)publicfinalclassSystemextendsObject。

Java語(yǔ)言不支持全局函數(shù)和變量,它將一些系統(tǒng)相關(guān)的重要函數(shù)和變量收集到了一個(gè)統(tǒng)一的類(lèi)中,這就是System類(lèi)。該類(lèi)中的所有成員都是靜態(tài)的。該類(lèi)不能被實(shí)例化。6.4Java常用類(lèi)二、System類(lèi)1inSystem類(lèi)中的常量publicstaticfinalInputStreamin“標(biāo)準(zhǔn)”輸入流。該流已打開(kāi)并且準(zhǔn)備接受輸入數(shù)據(jù)。典型情況是該流同鍵盤(pán)輸入或主機(jī)環(huán)境或用戶(hù)指定的另一個(gè)輸入源相聯(lián)系。6.4Java常用類(lèi)二、System類(lèi)2outSystem類(lèi)中的常量publicstaticfinalPrintStreamout“標(biāo)準(zhǔn)”輸出流。該流已打開(kāi)并且準(zhǔn)備接受輸出數(shù)據(jù)。典型情況是該流同顯示輸出或由主機(jī)環(huán)境或用戶(hù)指定的另一個(gè)輸出目標(biāo)相聯(lián)系。6.4Java常用類(lèi)二、System類(lèi)2outSystem類(lèi)中的常量例:intx,y;

x=10;y=20;

z=x+y;

System.out.print(“x=“+x);

System.out.print(“y=“+y);

System.out.println(“x+y=“+z);6.4Java常用類(lèi)二、System類(lèi)3System類(lèi)中的常用方法publicstaticvoidexit(intstatus)publicstaticnativelongcurrentTimeMillis()publicstaticnativevoidarraycopy(Objectsrc,intsrcoffset,Objectdst,intdstoffset,intlength)6.4Java常用類(lèi)三、基本數(shù)據(jù)類(lèi)型包裝類(lèi)1Number(基本數(shù)據(jù)類(lèi)型包裝類(lèi)的抽象基類(lèi))publicabstractclassNumberextendsObjectimplementsSerializable。抽象類(lèi)Number是Byte、Double、Float、Integer、Long和Short的父類(lèi)。Number的子類(lèi)必須提供方法把表示的數(shù)值轉(zhuǎn)換為byte、double、float、int,long和short類(lèi)型。6.4Java常用類(lèi)三、基本數(shù)據(jù)類(lèi)型包裝類(lèi)1Number(基本數(shù)據(jù)類(lèi)型包裝類(lèi)的抽象基類(lèi))方法:(被其子類(lèi)繼承)

byteValue():以byte的形式,返回指定數(shù)值的值。

doubleValue():以double的形式,返回指定數(shù)值的值。

floatValue():以float的形式,返回指定數(shù)值的值。

intValue():以int的形式,返回指定數(shù)值的值。

longValue():以long的形式,返回指定數(shù)值的值。

shortValue():以short的形式,返回指定數(shù)值的值。6.4Java常用類(lèi)三、基本數(shù)據(jù)類(lèi)型包裝類(lèi)2基本數(shù)據(jù)類(lèi)型包裝類(lèi)有Byte、Integer、Long、Short、Float、Double幾種。很少直接聲明創(chuàng)建基本數(shù)據(jù)類(lèi)型包裝類(lèi)的對(duì)象,常用于字符串和基本數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換?;緮?shù)據(jù)類(lèi)型的包裝類(lèi),每個(gè)對(duì)象包含單一的基本數(shù)據(jù)類(lèi)型數(shù)據(jù)域。如每個(gè)Double型對(duì)象包含單一的雙精度浮點(diǎn)(double)型數(shù)據(jù)域。6.4Java常用類(lèi)三、基本數(shù)據(jù)類(lèi)型包裝類(lèi)2基本數(shù)據(jù)類(lèi)型包裝類(lèi)每個(gè)類(lèi)都提供了一個(gè)名字為valueOf的方法,將String對(duì)象轉(zhuǎn)換成本類(lèi)型對(duì)象,如publicstaticDoublevalueOf(Strings)將String對(duì)象轉(zhuǎn)換為Double對(duì)象。每個(gè)類(lèi)都從其直接基類(lèi)Number中繼承了相應(yīng)的方法,可以得到對(duì)象所對(duì)應(yīng)的基本數(shù)據(jù)類(lèi)型數(shù)據(jù)。如doubleValue():以double的形式,返回指定數(shù)值的值。6.4Java常用類(lèi)四、String、StringBuffer、CharacterJava使用java.lang包中的String類(lèi)和StringBuffer類(lèi)來(lái)封裝對(duì)字符串的各種操作。String類(lèi)用于比較兩個(gè)字符串、查找和抽取串中的字符或子串、字符串與其它類(lèi)型之間的轉(zhuǎn)換等。6.4Java常用類(lèi)四、String、StringBuffer、CharacterJava使用java.lang包中的String類(lèi)和StringBuffer類(lèi)來(lái)封裝對(duì)字符串的各種操作。StringBuffer用于內(nèi)容可以改變的字符串,可以將其他各種類(lèi)型數(shù)據(jù)增加、插入到字符串中,也可翻轉(zhuǎn)字符串中原來(lái)的內(nèi)容。一旦通過(guò)StringBuffer生成了最終想要的字符串,就應(yīng)該使用StringBuffer中的toString方法將其轉(zhuǎn)換成String對(duì)象,就可以用String類(lèi)的各種方法操作這個(gè)字符串了。6.4Java常用類(lèi)四、String、StringBuffer、CharacterJava為字符串提供了特別的連接操作符“+”,可以把各種類(lèi)型的數(shù)據(jù)轉(zhuǎn)換成字符串,并前后連接成新的字符串。實(shí)際上,“+”是通過(guò)StringBuffer類(lèi)和它的append方法實(shí)現(xiàn)的。如:Stringx="a"+4+"c";編譯時(shí)等價(jià)于

Stringx=newStringBuffer()

.append("a").append(4).append("c").toString();6.4Java常用類(lèi)四、String、StringBuffer、Character1String類(lèi)(1)String類(lèi)的構(gòu)造方法String():創(chuàng)建一個(gè)空串。String(byteb[]):用一個(gè)字節(jié)數(shù)組創(chuàng)建一個(gè)字符串。String(byteb[],intoff,intlen):同上,off為要轉(zhuǎn)換的第一個(gè)字節(jié),len為轉(zhuǎn)換的字節(jié)個(gè)數(shù)。String(charc[]):用一個(gè)字符數(shù)組創(chuàng)建一個(gè)字符串。String(charc[],intoff,intlen):同上,off為要轉(zhuǎn)換的第一個(gè)符,len為轉(zhuǎn)換的字符個(gè)數(shù)。String(Strings):創(chuàng)建一個(gè)和參數(shù)相同的字符串。6.4Java常用類(lèi)四、String、StringBuffer、Character1String類(lèi)(1)String類(lèi)的構(gòu)造方法1、Strings1;

s1=newString();

或s1=newString();2、Strings2=newString("china");3、chara[3]={'b','o','y'};

Strings=newString(a);4、chara[]={'s','t','b','u','s','n'};

Strings=newString(a,2,3);例:6.4Java常用類(lèi)四、String、StringBuffer、Character1String類(lèi)(2)String類(lèi)的常用方法求字符串的長(zhǎng)度publicintlength()字符串的比較publicbooleanequals(Strings)publicbooleanequalsIgnoreCase(Strings)publicbooleanstartsWith(Strings):publicbooleanendsWith(Strings)publicintcompareTo(Strings)6.4Java常用類(lèi)四、String、StringBuffer、Character1String類(lèi)(2)String類(lèi)的常用方法字符串的檢索1)搜索指定串出現(xiàn)的位置publicintindexOf(Strings)publicintindexOf(Strings,intstartpointpublicintlastIndexStringspublicintlastIndexOf(Strings,intstartpoint)6.4Java常用類(lèi)四、String、StringBuffer、Character1String類(lèi)(2)String類(lèi)的常用方法字符串的檢索2)搜索指定字符出現(xiàn)的位置publicintindexOf(intcharpublicintindexOf(intchar,intstartpointpublicintlastIndexOf(intcharpublicintlastIndexOf(intchar,intstartpoint):6.4Java常用類(lèi)四、String、StringBuffer、Character1String類(lèi)(2)String類(lèi)的常用方法字符串的截取1)publicStringsubstring(intstartpoint2)publicStringsubstring(intstart,intend)6.4Java常用類(lèi)四、String、StringBuffer、Character2Character類(lèi)Character類(lèi)中的一些類(lèi)方法是很有用的,這些方法可以用來(lái)進(jìn)行字符分類(lèi),比如判斷一個(gè)字符是否是數(shù)字字符或改變一個(gè)字符大小等。1.publicstaticbooleanisDigit(charch):如果ch是數(shù)字字符,方法返回true,否則返回false。2.publicstaticbooleanisLetter(charch):如果ch是字母,方法返回true,否則返回false。3.publicstaticbooleanisLetterOrDigit(charch):如果ch是數(shù)字字符或字母,方法返回true,否則返回false。4.publicstaticbooleanisLowerCase(charch):如果ch是小寫(xiě)字母,方法返回true,否則返回false。6.4Java常用類(lèi)四、String、StringBuffer、Character2Character類(lèi)Character類(lèi)中的一些類(lèi)方法是很有用的,這些方法可以用來(lái)進(jìn)行字符分類(lèi),比如判斷一個(gè)字符是否是數(shù)字字符或改變一個(gè)字符大小等。5.publicstaticbooleanisUpperCase(charch):如果ch是大寫(xiě)字母,方法返回true,否則返回false。6.publicstaticchartoLowerCase(charch):返回ch的小寫(xiě)形式。7.publicstaticchartoUpperCase(charch):返回ch的大寫(xiě)形式。8.publicstaticbooleanisSpaceChar(charch):如果ch是空格,返回true。6.4Java常用類(lèi)五、Date、SimpleDateFormat、Calendar1用于表示日期和時(shí)間,最簡(jiǎn)單最常用的構(gòu)造方法是Date(),它以當(dāng)前的日期和時(shí)間初始化一個(gè)Date對(duì)象。由于開(kāi)始沒(méi)有考慮國(guó)際化,所以后來(lái)又設(shè)計(jì)了兩個(gè)新類(lèi)來(lái)解決Date類(lèi)中的問(wèn)題,一個(gè)是Calendar類(lèi),一個(gè)是DateFormat類(lèi)。Date類(lèi)Date類(lèi)(java.util包中)6.4Java常用類(lèi)五、Date、SimpleDateFormat、Calendar1Date類(lèi)Date類(lèi)的兩個(gè)常用的構(gòu)造方法:用本地當(dāng)前日期和時(shí)間初始化Date對(duì)象。默認(rèn)格式是:星期、月、日、小時(shí)、分、秒、年。date為自1970年1月1日00:00:00起指定的毫秒數(shù)。(1)

Date()(2)

Date(longdate)6.4Java常用類(lèi)五、Date、SimpleDateFormat、Calendar2SimpleDateFormat類(lèi)(java.text包中)相當(dāng)于一個(gè)模板,最常用的構(gòu)造方法是SimpleDateFormat(Stringpattern),用參數(shù)pattern指定的格式創(chuàng)建一個(gè)對(duì)象,該對(duì)象調(diào)用format(Datedate)方法格式化時(shí)間對(duì)象date。pattern中含有一些格式字符要被真實(shí)的日期數(shù)字替換,其他的字符原樣出現(xiàn)。例:設(shè)置日期時(shí)間的顯示格式。6.4Java常用類(lèi)五、Date、SimpleDateFormat、Calendar3Calendar類(lèi)(1)Calendar類(lèi)(java.util包中)是一個(gè)抽象類(lèi),主要用于完成日期字段之間相互操作的功能。使用該類(lèi)的類(lèi)方法getInstance()可以初始化一個(gè)日歷對(duì)象。如:

Calendarcalendar=Calendar.getInstance();6.4Java常用類(lèi)五、Date、SimpleDateFormat、Calendar3Calendar類(lèi)(2)Calendar類(lèi)提供了一些靜態(tài)常量,用來(lái)表示給定的時(shí)間域。如:DAY_OF_MONTH

DAY_OF_WEEK

DAY_OF_WEEK_IN_MONTH

DAY_OF_YEAR等等6.4Java常用類(lèi)五、Date、SimpleDateFormat、Calendar3Calendar類(lèi)(3)Calendar類(lèi)的常用方法:publicfinalvoidset(intfield,intvalue):用給定的值設(shè)置時(shí)間域。publicfinalvoidset(intyear,intmonth,intdate):設(shè)置年、月、日期域的數(shù)值。保留其它域上次的值。如果不需要保留,首先調(diào)用clear。6.4Java常用類(lèi)五、Date、SimpleDateFormat、Calendar3Calendar類(lèi)(3)Calendar類(lèi)的常用方法:publicfinalvoidset(intyear,intmonth,intdate,inthour,intminute):設(shè)置年、月、日期、時(shí)和分域的數(shù)值。保留其它域上次的值。如果不需要保留,首先調(diào)用clear。publicfinalvoidset(intyear,intmonth,intdate,inthour,intminute,intsecond):設(shè)置年、月、日期、時(shí)、分和秒域的數(shù)值。保留其它域上次的值。如果不需要保留,首先調(diào)用clear。6.4Java常用類(lèi)五、Date、SimpleDateFormat、Calendar3Calendar類(lèi)(3)Calendar類(lèi)的常用方法:publicfinalvoidsetTime(Datedate):用給定的Date設(shè)置Calendar的當(dāng)前時(shí)間。publicfinalintget(intfield):獲得給定時(shí)間域的值。publiclonggetTimeInMillis():獲得日歷的作為長(zhǎng)整型的當(dāng)前時(shí)間。publicabstractvoidadd(intfield,intamount):日期的計(jì)算功能。按照日歷的規(guī)則,將指定(帶符號(hào)的)數(shù)量的時(shí)間添加到給定的時(shí)間域。例如,從日歷的當(dāng)前時(shí)間減5,調(diào)用:add(Calendar.DATE,-5)。6.4Java常用類(lèi)六、Math和Random類(lèi)1publicfinalclassMathextendsObject類(lèi)Math包含基本數(shù)學(xué)操作如指數(shù),對(duì)數(shù),平方根和三角函數(shù)。Math類(lèi)中的常量:

(1)E:該double值非常接近e,自然對(duì)數(shù)的底數(shù)。

(2)PI:該double值非常接近pi,圓的周長(zhǎng)與直徑之比。Math類(lèi)中的方法:

均為靜態(tài)方法,常用數(shù)學(xué)函數(shù)。如Math.abs(-3.4)等。Math類(lèi)

(java.lang包中)6.4Java常用類(lèi)六、Math和Random類(lèi)2該類(lèi)的實(shí)例被用于生成偽隨機(jī)數(shù)的流。該類(lèi)使用一個(gè)48位的種子,它被一個(gè)線性同余公式所修改。如果Random的兩個(gè)實(shí)例用同一種子創(chuàng)建,對(duì)每個(gè)實(shí)例完成同一方法調(diào)用序列,它們將生成和返回相同的數(shù)序列。常用方法:

(1)publicsynchronizedvoidsetSeed(longseed):設(shè)置隨機(jī)數(shù)種子。

(2)next(int)nextBytes(byte[])

nextDouble()nextFloat()

nextGaussian()nextInt()nextLong()Random類(lèi)

(java.util包中)任務(wù)實(shí)施完善學(xué)生管理系統(tǒng)中的功能??偨Y(jié)用到的知識(shí)點(diǎn)。任務(wù)小結(jié)通過(guò)學(xué)習(xí),要求學(xué)生掌握異常的基本概念和處理方法,熟悉Java常用類(lèi)及其使用方法。6.2異常處理方法把異常拋給上一層調(diào)用它的方法中,由該方法進(jìn)行異常處理或繼續(xù)拋給上一層。通過(guò)try-catch語(yǔ)句塊處理異常,把可能發(fā)生異常的語(yǔ)句放在try語(yǔ)句塊中,catch捕獲異常并處理。0201Java程序?qū)Ξ惓L幚碛袃煞N方法6.2異常處理方法一、try-catch語(yǔ)句塊try

{<語(yǔ)句塊1>//可能產(chǎn)生異常的代碼

}

catch(ExceptionType1e)

{<語(yǔ)句塊2>//捕獲某種異常對(duì)象時(shí)進(jìn)行處理的代碼

}

finally

{<語(yǔ)句塊3>//必須執(zhí)行的代碼,無(wú)論是否捕獲到異常

}格式:6.2異常處理方法一、try-catch語(yǔ)句塊catch語(yǔ)句可以有一個(gè)或多個(gè),但至少要有一個(gè)catch語(yǔ)句,finally語(yǔ)句可以省略。try-catch-finally語(yǔ)句的作用是:當(dāng)try語(yǔ)句中的代碼產(chǎn)生異常時(shí),根據(jù)異常的不同,由不同的catch語(yǔ)句中的代碼對(duì)異常進(jìn)行捕獲并處理,如果沒(méi)有異常,則catch語(yǔ)句不執(zhí)行,而無(wú)論是否捕獲到異常都必須執(zhí)行finally中的代碼。6.2異常處理方法二、方法使用throws拋出異常Java提供了另一種處理異常的方式,將出現(xiàn)的異常向調(diào)用它的上一層方法拋出,由上一層方法處理或繼續(xù)向上一層拋出。格式:[修飾符]返回類(lèi)型方法名(參數(shù)列表)throws異常列表

{......}

如:publicintread()throwsException

{......}6.2異常處理方法三、使用throw拋出異常拋出異常的既可以是Java運(yùn)行系統(tǒng),也可以是程序員自己編寫(xiě)的代碼,既在try語(yǔ)句中的代碼本身不會(huì)產(chǎn)生異常,而由程序員故意拋出異常。格式:throw<異常對(duì)象>6.3自定義異常類(lèi)三、使用throw拋出異常雖然Java已經(jīng)預(yù)定義了很多異常類(lèi),但有的情況下,程序員不僅需要自己拋出異常,還需要?jiǎng)?chuàng)建自己的異常類(lèi)。這時(shí)可以通過(guò)創(chuàng)建Exception類(lèi)的子類(lèi)來(lái)定義自己的異常類(lèi)。自定義異常類(lèi)的格式:class自定義異常extends父異常類(lèi)名

{

類(lèi)體

}6.4Java常用類(lèi)一、API概述API(ApplicationProgammingInterface)應(yīng)用程序編程接口。包是Java提供的一種區(qū)別類(lèi)名字空間的機(jī)制,是類(lèi)的組織方式,包對(duì)應(yīng)一個(gè)文件夾,包中還可以再有包,稱(chēng)為包等級(jí)。Java中提到的API,就是JDK提供的各種功能的Java類(lèi)。同一包中類(lèi)不能重復(fù),不同包中的類(lèi)可以同名。6.4Java常用類(lèi)一、API概述Java常用包java.lang語(yǔ)言包java.util實(shí)用包java.awt抽象窗口工具包java.text文本包java.io輸入輸出流的文件包java.applet小應(yīng)用程序包網(wǎng)絡(luò)功能包java.sql數(shù)據(jù)庫(kù)功能包6.4Java常用類(lèi)二、System類(lèi)publicfinalclassSystemextendsObject。

Java語(yǔ)言不支持全局函數(shù)和變量,它將一些系統(tǒng)相關(guān)的重要函數(shù)和變量收集到了一個(gè)統(tǒng)一的類(lèi)中,這就是System類(lèi)。該類(lèi)中的所有成員都是靜態(tài)的。該類(lèi)不能被實(shí)例化。6.4Java常用類(lèi)二、System類(lèi)1inSystem類(lèi)中的常量publicstaticfinalInputStreamin“標(biāo)準(zhǔn)”輸入流。該流已打開(kāi)并且準(zhǔn)備接受輸入數(shù)據(jù)。典型情況是該流同鍵盤(pán)輸入或主機(jī)環(huán)境或用戶(hù)指定的另一個(gè)輸入源相聯(lián)系。6.4Java常用類(lèi)二、System類(lèi)2outSystem類(lèi)中的常量publicstaticfinalPrintStreamout“標(biāo)準(zhǔn)”輸出流。該流已打開(kāi)并且準(zhǔn)備接受輸出數(shù)據(jù)。典型情況是該流同顯示輸出或由主機(jī)環(huán)境或用戶(hù)指定的另一個(gè)輸出目標(biāo)相聯(lián)系。6.4Java常用類(lèi)二、System類(lèi)2outSystem類(lèi)中的常量例:intx,y;

x=10;y=20;

z=x+y;

System.out.print(“x=“+x);

System.out.print(“y=“+y);

System.out.println(“x+y=“+z);6.4Java常用類(lèi)二、System類(lèi)3System類(lèi)中的常用方法publicstaticvoidexit(intstatus)publicstaticnativelongcurrentTimeMillis()publicstaticnativevoidarraycopy(Objectsrc,intsrcoffset,Objectdst,intdstoffset,intlength)6.4Java常用類(lèi)三、基本數(shù)據(jù)類(lèi)型包裝類(lèi)1Number(基本數(shù)據(jù)類(lèi)型包裝類(lèi)的抽象基類(lèi))publicabstractclassNumberextendsObjectimplementsSerializable。抽象類(lèi)Number是Byte、Double、Float、Integer、Long和Short的父類(lèi)。Number的子類(lèi)必須提供方法把表示的數(shù)值轉(zhuǎn)換為byte、double、float、int,long和short類(lèi)型。6.4Java常用類(lèi)三、基本數(shù)據(jù)類(lèi)型包裝類(lèi)1Number(基本數(shù)據(jù)類(lèi)型包裝類(lèi)的抽象基類(lèi))方法:(被其子類(lèi)繼承)

byteValue():以byte的形式,返回指定數(shù)值的值。

doubleValue():以double的形式,返回指定數(shù)值的值。

floatValue():以float的形式,返回指定數(shù)值的值。

intValue():以int的形式,返回指定數(shù)值的值。

longValue():以long的形式,返回指定數(shù)值的值。

shortValue():以short的形式,返回指定數(shù)值的值。6.4Java常用類(lèi)三、基本數(shù)據(jù)類(lèi)型包裝類(lèi)2基本數(shù)據(jù)類(lèi)型包裝類(lèi)有Byte、Integer、Long、Short、Float、Double幾種。很少直接聲明創(chuàng)建基本數(shù)據(jù)類(lèi)型包裝類(lèi)的對(duì)象,常用于字符串和基本數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換。基本數(shù)據(jù)類(lèi)型的包裝類(lèi),每個(gè)對(duì)象包含單一的基本數(shù)據(jù)類(lèi)型數(shù)據(jù)域。如每個(gè)Double型對(duì)象包含單一的雙精度浮點(diǎn)(double)型數(shù)據(jù)域。6.4Java常用類(lèi)三、基本數(shù)據(jù)類(lèi)型包裝類(lèi)2基本數(shù)據(jù)類(lèi)型包裝類(lèi)每個(gè)類(lèi)都提供了一個(gè)名字為valueOf的方法,將String對(duì)象轉(zhuǎn)換成本類(lèi)型對(duì)象,如publicstaticDoublevalueOf(Strings)將String對(duì)象轉(zhuǎn)換為Double對(duì)象。每個(gè)類(lèi)都從其直接基類(lèi)Number中繼承了相應(yīng)的方法,可以得到對(duì)象所對(duì)應(yīng)的基本數(shù)據(jù)類(lèi)型數(shù)據(jù)。如doubleValue():以double的形式,返回指定數(shù)值的值。6.4Java常用類(lèi)四、String、StringBuffer、CharacterJava使用java.lang包中的String類(lèi)和StringBuffer類(lèi)來(lái)封裝對(duì)字符串的各種操作。String類(lèi)用于比較兩個(gè)字符串、查找和抽取串中的字符或子串、字符串與其它類(lèi)型之間的轉(zhuǎn)換等。6.4Java常用類(lèi)四、String、StringBuffer、CharacterJava使用java.lang包中的String類(lèi)和StringBuffer類(lèi)來(lái)封裝對(duì)字符串的各種操作。StringBuffer用于內(nèi)容可以改變的字符串,可以將其他各種類(lèi)型數(shù)據(jù)增加、插入到字符串中,也可翻轉(zhuǎn)字符串中原來(lái)的內(nèi)容。一旦通過(guò)StringBuffer生成了最終想要的字符串,就應(yīng)該使用StringBuffer中的toString方法將其轉(zhuǎn)換成String對(duì)象,就可以用String類(lèi)的各種方法操作這個(gè)字符串了。6.4Java常用類(lèi)四、String、StringBuffer、CharacterJava為字符串提供了特別的連接操作符“+”,可以把各種類(lèi)型的數(shù)據(jù)轉(zhuǎn)換成字符串,并前后連接成新的字符串。實(shí)際上,“+”是通過(guò)StringBuffer類(lèi)和它的append方法實(shí)現(xiàn)的。如:Stringx="a"+4+"c";編譯時(shí)等價(jià)于

Stringx=newStringBuffer()

.append("a").append(4).append("c").toString();6.4Java常用類(lèi)四、String、StringBuffer、Character1String類(lèi)(1)String類(lèi)的構(gòu)造方法String():創(chuàng)建一個(gè)空串。String(byteb[]):用一個(gè)字節(jié)數(shù)組創(chuàng)建一個(gè)字符串。String(byteb[],intoff,intlen):同上,off為要轉(zhuǎn)換的第一個(gè)字節(jié),len為轉(zhuǎn)換的字節(jié)個(gè)數(shù)。String(charc[]):用一個(gè)字符數(shù)組創(chuàng)建一個(gè)字符串。String(charc[],intoff,intlen):同上,off為要轉(zhuǎn)換的第一個(gè)符,len為轉(zhuǎn)換的字符個(gè)數(shù)。String(Strings):創(chuàng)建一個(gè)和參數(shù)相同的字符串。6.4Java常用類(lèi)四、String、StringBuffer、Character1String類(lèi)(1)String類(lèi)的構(gòu)造方法1、Strings1;

s1=newString();

或s1=newString();2、Strings2=newString("china");3、chara[3]={'b','o','y'};

Strings=newString(a);4、chara[]={'s','t','b','u','s','n'};

Strings=newString(a,2,3);例:6.4Java常用類(lèi)四、String、StringBuffer、Character1String類(lèi)(2)String類(lèi)的常用方法求字符串的長(zhǎng)度publicintlength()字符串的比較publicbooleanequals(Strings)publicbooleanequalsIgnoreCase(Strings)publicbooleanstartsWith(Strings):publicbooleanendsWith(Strings)publicintcompareTo(Strings)6.4Java常用類(lèi)四、String、StringBuffer、Character1String類(lèi)(2)String類(lèi)的常用方法字符串的檢索1)搜索指定串出現(xiàn)的位置publicintindexOf(Strings)publicintindexOf(Strings,intstartpointpublicintlastIndexStringspublicintlastIndexOf(Strings,intstartpoint)6.4Java常用類(lèi)四、String、StringBuffer、Character1String類(lèi)(2)String類(lèi)的常用方法字符串的檢索2)搜索指定字符出現(xiàn)的位置publicintindexOf(intcharpublicintindexOf(intchar,intstartpointpublicintlastIndexOf(intcharpublicintlastIndexOf(intchar,intstartpoint):6.4Java常用類(lèi)四、String、StringBuffer、Character1String類(lèi)(2)String類(lèi)的常用方法字符串的截取1)publicStringsubstring(intstartpoint2)publicStringsubstring(intstart,intend)6.4Java常用類(lèi)四、String、StringBuffer、Character2Character類(lèi)Character類(lèi)中的一些類(lèi)方法是很有用的,這些方法可以用來(lái)進(jìn)行字符分類(lèi),比如判斷一個(gè)字符是否是數(shù)字字符或改變一個(gè)字符大小等。1.publicstaticbooleanisDigit(charch):如果ch是數(shù)字字符,方法返回true,否則返回false。2.publicstaticbooleanisLetter(charch):如果ch是字母,方法返回true,否則返回false。3.publicstaticbooleanisLetterOrDigit(charch):如果ch是數(shù)字字符或字母,方法返回true,否則返回false。4.publicstaticbooleanisLowerCase(charch):如果ch是小寫(xiě)字母,方法返回true,否則返回false。6.4Java常用類(lèi)四、String、StringBuffer、Character2Character類(lèi)Character類(lèi)中的一些類(lèi)方法是很有用的,這些方法可以用來(lái)進(jìn)行字符分類(lèi),比如判斷一個(gè)字符是否是數(shù)字字符或改變一個(gè)字符大小等。5.publicstaticbooleanisUpperCase(charch):如果ch是大寫(xiě)字母,方法返回true,否則返回false。6.publicstaticchartoLowerCase(charch):返回ch的小寫(xiě)形式。7.publicstaticchartoUpperCase(charch):返回ch的大寫(xiě)形式。8.publicstaticbooleanisSpaceChar(charch):如果ch是空格,返回true。6.4Java常用類(lèi)五、Date、SimpleDateFormat、Calendar1用于表示日期和時(shí)間,最簡(jiǎn)單最常用的構(gòu)造方法是Date(),它以當(dāng)前的日期和時(shí)間初始化一個(gè)Date對(duì)象。由于開(kāi)始沒(méi)有考慮國(guó)際化,所以后來(lái)又設(shè)計(jì)了兩個(gè)新類(lèi)來(lái)解決Date類(lèi)中的問(wèn)題,一個(gè)是Calendar類(lèi),一個(gè)是DateFormat類(lèi)。Date類(lèi)Date類(lèi)(java.util包中)6.4Java常用類(lèi)五、Date、SimpleDateFormat、Calendar1Date類(lèi)Date類(lèi)的兩個(gè)常用的構(gòu)造方法:用本地當(dāng)前日期和時(shí)間初始化Date對(duì)象。默認(rèn)格式是:星期、月、日、小時(shí)、分、秒、年。date為自1970年1月1日00:00:00起指定的毫秒數(shù)。(1)

Date()(2)

Date(longdate)6.4Java常用類(lèi)五、Date、SimpleDateFormat、Calendar2SimpleDateFormat類(lèi)(java.text包中)相當(dāng)于一個(gè)模板,最常用的構(gòu)造方法是SimpleDateFormat(Stringpattern),用參數(shù)pattern指定的格式創(chuàng)建一個(gè)對(duì)象,該對(duì)象調(diào)用format(Datedate)方法格式化時(shí)間對(duì)象date。pattern中含有一些格式字符要被真實(shí)的日期數(shù)字替換,其他的字符原樣出現(xiàn)。例:設(shè)置日期時(shí)間的顯示格式。6.4Java常用類(lèi)五、Date、SimpleDateFormat、Calendar3Calendar類(lèi)(1)Calenda

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論