新聞中心
前言

大家好,我是Java進(jìn)階者。這篇文章我們主要介紹Java基礎(chǔ)入門之自定義異常、形參個(gè)數(shù)可變的方法、水仙花數(shù)知識(shí),一起來(lái)學(xué)習(xí)下吧!
一、自定義異常
1.在JDK中定義了很多的異常類,雖然這些異常類可以說(shuō)在編程時(shí)會(huì)出現(xiàn)大部分異常的狀況,有些時(shí)候可能需要描述這個(gè)程序中會(huì)出現(xiàn)的異常情況。在java中可以讓用戶自定義異常,但自定義的異常類必須是繼承自Exception或其子類。
2.自定義異常語(yǔ)句語(yǔ)法
- class 自定義異常 extends 父異常類名
- {
- 類體;
- }
3.自定義異常的歸納有以下幾點(diǎn):
① 自定義異常類必須是繼承自Exception或其子類。
② 一個(gè)方法所聲明拋出的異常是這個(gè)方法與外界交互的一部分而存在的。方法的調(diào)用者需要了解這些異常,然后怎樣去正確處理它們。
③ 用異常表示錯(cuò)誤,不能使用方法的返回的值。
4.自定義異常例子
- //自定義一個(gè)DivException異常類繼承Exception
- class DivException extends Exception{
- public DivException(){
- super();//調(diào)用Exception無(wú)參數(shù)的構(gòu)造方法
- }
- public DivException(String msg){
- super(msg);//調(diào)用Exception有參數(shù)的構(gòu)造方法
- }
- }
- public class p36 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- //定義try...catch語(yǔ)句用來(lái)捕獲異常
- try{
- int result=div(20,-2);//調(diào)用div()方法
- System.out.println(result);
- }catch(DivException e){//捕獲并處理異常
- System.out.println(e.getMessage());
- }
- }
- //此方法實(shí)現(xiàn)兩個(gè)整數(shù)相除,使用throws關(guān)鍵字聲明拋出自定義異常
- public static int div(int a,int b) throws DivException{
- //判斷b的值是不是小于0
- if(b<0){
- //使用throw關(guān)鍵字聲明拋出異常
- throw new DivException("被除數(shù)是一個(gè)負(fù)數(shù)");
- }
- int result=a/b;//定義一個(gè)int類型變量result,保存兩個(gè)數(shù)相除結(jié)果
- return result;//結(jié)果返回值
- }
- }
運(yùn)行的結(jié)果是:
從上面代碼中,首先是自定義一個(gè)DivException異常類繼承Exception,使用try...catch語(yǔ)句,try代碼塊主要是可能發(fā)生異常的代碼塊,大括號(hào)里面調(diào)用div()方法傳入a=20,b=-2,catch代碼塊主要是捕獲異常并處理。
再定義個(gè)div()方法實(shí)現(xiàn)兩個(gè)整數(shù)相除,使用throws關(guān)鍵字聲明拋出自定義異常,判斷這個(gè)b的值是不是小于0,,如果是throw關(guān)鍵字拋出異常。
使用try...catch語(yǔ)句捕獲div()方法拋出的異常,在調(diào)用div()方法傳入的被除數(shù)不能是小于0的,則會(huì)拋出一個(gè)自定義DivException,該異常給catch代碼塊捕獲并處理,輸出被除數(shù)是一個(gè)負(fù)數(shù)。
二、形參個(gè)數(shù)可變的方法
1.在定義方法時(shí),在最后一個(gè)形參的類型后增加三點(diǎn)…,表示這個(gè)該形參接受多個(gè)參數(shù)值,多個(gè)參數(shù)值被當(dāng)成數(shù)組傳入。
2.形參個(gè)數(shù)可變的方法應(yīng)用:
- public class p37 {
- // 定義了形參個(gè)數(shù)可變的方法
- public static void test(int a , String... books){
- // books被作為數(shù)組處理
- for (String tmp : books){
- System.out.println(tmp);
- }
- System.out.println(a);
- }
- public static void test(String[] books){
- for (String tmp : books){
- System.out.println(tmp);
- }
- }
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- test(3, "python應(yīng)用實(shí)戰(zhàn)" , "Java應(yīng)用實(shí)戰(zhàn)");//調(diào)用test()方法
- }
- }
輸出的結(jié)果是:
4.形參個(gè)數(shù)可變的方法注意的問(wèn)題:
1)一個(gè)方法中最多只能有一個(gè)個(gè)數(shù)可變的形參,并且需要放在所有參數(shù)的最后。
2)個(gè)數(shù)可變的形參它是一個(gè)數(shù)組類型的形參,當(dāng)在調(diào)用包含個(gè)數(shù)可變形參的方法時(shí),這個(gè)個(gè)數(shù)可變的形參可以傳入多個(gè)參數(shù),也可以傳入一個(gè)數(shù)組。
三、水仙花數(shù)
1.什么是水仙花數(shù)
一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153=111+555+333=1+125+27
2.求100至999之間的所有“水仙花數(shù)”
- public class p38 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- System.out.print("100-999的水仙花有:");
- for (int i = 100;i <= 999 ;i++ ) {//獲取100到999之間的數(shù)
- //個(gè)位數(shù)
- int a = i % 10;//123 % 10
- //十位數(shù)
- int b = i / 10 % 10;//12 % 10;
- //百位數(shù)
- int c = i / 10 / 10 % 10;//1 % 10
- if (a * a * a + b * b * b + c * c * c == i) {
- System.out.print(i+"、");
- }
- }
- }
- }
運(yùn)行的結(jié)果是:
從上面的代碼中,獲取每一個(gè)位數(shù)的值,個(gè)位、十位、百位,然后通過(guò)判斷各個(gè)位上的立方是不是等于這個(gè)數(shù),如果是就輸出水仙花數(shù),如果不是就不輸出。
四、總結(jié)
本文主要介紹了自定義異常、形參個(gè)數(shù)可變的方法、水仙花數(shù)。
用戶自定義異常,但自定義的異常類必須是繼承自Exception或其子類。介紹了自定義異常的語(yǔ)法格式,通過(guò)一個(gè)案例是如何使用自定義異常。
形參個(gè)數(shù)可變的方法是在定義方法時(shí),在最后一個(gè)形參的類型后增加三點(diǎn)…,表示這個(gè)該形參接受多個(gè)參數(shù)值,多個(gè)參數(shù)值被當(dāng)成數(shù)組傳入。
水仙花數(shù)是一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。
希望大家通過(guò)本文的學(xué)習(xí),對(duì)你們有所幫助!
本文轉(zhuǎn)載自微信公眾號(hào)「Java進(jìn)階學(xué)習(xí)交流」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Java進(jìn)階學(xué)習(xí)交流 公眾號(hào)。
當(dāng)前題目:Java基礎(chǔ)入門之自定義異常、形參個(gè)數(shù)可變的方法、水仙花數(shù)
網(wǎng)頁(yè)URL:http://m.fisionsoft.com.cn/article/dpocgdc.html


咨詢
建站咨詢
