日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java 内部类异常_Java笔记(三 内部类、异常、编程规范)

發(fā)布時間:2025/3/12 java 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 内部类异常_Java笔记(三 内部类、异常、编程规范) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

內(nèi)部類(Outer.java)

在一個類中定義另外一個類,這個類就叫做內(nèi)部類或內(nèi)置類(inner class)

內(nèi)部類和外部類分屬不同的空間,都有自己的數(shù)據(jù)變量和數(shù)據(jù)方法,內(nèi)部類仍然是一個獨立的類

內(nèi)部類所產(chǎn)生的字節(jié)碼的文件名:外部類$內(nèi)部類.class

內(nèi)部類可以讓我們將邏輯上相關(guān)的一組類組織起來,并由外部類(outer class)來控制內(nèi)部類的可見性

當(dāng)我們建立一個inner class時(不管其嵌套的層次有多深),其對象就擁有了與外部類對象之間的一種關(guān)系,這是通過一個特殊的this reference形成的,使得內(nèi)部類對象可以隨意的訪問外部類中所有的成員

在一個方法內(nèi)定義一個類的時候只能在該方法內(nèi)部使用這個類

還可將內(nèi)部類的定義放置在一個語句塊中

在方法中定義的內(nèi)部類,如果要訪問方法中定義的本地變量或方法的參數(shù),則變量必須被聲明為final

內(nèi)部類可以聲明為private或protected,還可以聲明為abstract或final

內(nèi)部類可以聲明為static的,那么在產(chǎn)生內(nèi)部類的對象的時候就無需同時再存在一外部類的對象,但此時就不能再使用外部類的非static的成員變量和非static的成員方法

非static的內(nèi)部類中的成員不能聲明為static的,只有在頂層類或static的內(nèi)部類中才可聲明static成員

為什么要使用內(nèi)部類:

在內(nèi)部類中,可以隨意的訪問外部類的成員,這可以讓我們更好地組織管理我們的代碼,增強(qiáng)代碼的可讀性(若外部類要訪問內(nèi)部類的成員,需要先產(chǎn)生內(nèi)部的的一個對象,然后利用這個對象去引用內(nèi)部類的成員)

內(nèi)部類可以用于創(chuàng)建適配器類,適配器類是用于實現(xiàn)接口的類。使用內(nèi)部類來實現(xiàn)接口,可以更好地定位與接口關(guān)聯(lián)的方法在代碼中的位置

內(nèi)部類的更多用法

java.lang包下有個Exception類,它有很多子類。不過雖然Exception類在java.lang包下,但它的子類不一定都在這同一個包中。Exception類類是從Throwable類派生出來的

異常處理:

打開一個不存在的文件、網(wǎng)絡(luò)連接中斷、數(shù)組下標(biāo)越界、正在加載的類文件丟失等都會引發(fā)異常

Java中的異常類定義了程序中遇到的輕微的錯誤條件

Java中的錯誤類定義了程序中不能恢復(fù)的嚴(yán)重錯誤條件。如內(nèi)存溢出、類文件格式錯誤等。這一類錯誤由Java運行系統(tǒng)處理,不需要我們?nèi)ヌ幚?/p>

Java程序在執(zhí)行過程中如出現(xiàn)異常,會自動生成一個異常類對象,該異常類對象將被提交給Java運行時的系統(tǒng),這個過程稱為拋出(throw)異常

當(dāng)Java運行時系統(tǒng)接收到異常對象時,會尋找能處理這一異常的代碼把當(dāng)前異常對象交給其處理,這一過程稱為捕獲(catch)異常

如果Java運行時系統(tǒng)找不到可以捕獲異常的方法,則運行時系統(tǒng)將終止,相應(yīng)的Java程序也將退出

try/catch/finally語句:把可能引發(fā)異常的代碼放到try里,在catch語句中對異常條件進(jìn)行處理。

若沒有進(jìn)行異常處理,在程序退出的時候會自動調(diào)用printStackTrace()。

可以寫多個catch。

不管程序有無異常,finally語句里的代碼都會執(zhí)行。但當(dāng)程序終止運行的時候,finally語句里的代碼就不會執(zhí)行(如前有System.exit(-1))

拋出異常聲明函數(shù)throws

class Excep

{

public int division(int a,int b)

{

return a/b;

}

}

class ExcepTest

{

public static void main(String[] args)

{

Excep excep=new Excep();

try

{

excep.division(5,0);

System.out.println("exception");

}

catch(Exception e)

{

//System.out.println("can‘t");

//System.out.println(e.getMessage());

//System.out.println(e.toString());

e.printStackTrace();//異常發(fā)生的軌跡

}

System.out.println("finish");

}

}

----------------------------------------------------------------------

class Excep

{

public int division(int a,int b) throws Exception

{

return a/b;

}

}

class ExcepTest

{

public static void main(String[] args)

{

Excep excep=new Excep();

excep.division(5,0);

System.out.println("exception");

System.out.println("finish");

}

}

對于RuntimeException通常都不需要我們捕獲,這類異常由Java運行系統(tǒng)自動拋出并自動處理。所以throws RuntimeException時,Java不會強(qiáng)制要求捕獲,其他的會強(qiáng)制要求捕獲

如果父類中的方法拋出多個異常,則子類中的覆蓋方法要么拋出相同的異常,要么拋出異常的子類,但不能拋出新的異常(構(gòu)造方法除外)

我們可以在方法聲名時,聲名一個不會拋出的異常,Java編譯器就會強(qiáng)迫方法的使用者對異常進(jìn)行處理。這種方式通常應(yīng)用于abstract base class和interface中

可以自己添加異常類,但必須從Exception中派生:

class DivisorIsMinusException extends Exception

{

DivisorIsMinusException(String str)

{

super(str);

}

}

Java編程規(guī)范:

package的名字由全部小寫的字母組成,如:cn.mubole

class和interface的名字由大寫字母開頭而其他字母都小寫的單詞組成,例如:Person,Exception

class變量的名字用一個小寫字母的單詞開頭,后面的單詞都用大寫字母開頭,例如:index,currentImage

class方法的名字用一個小寫字母的單詞開頭,后面的單詞都用大寫字母開頭,例如:run(),getBalance()

static final變量的名字所有字母都大寫,并且能表示完整含義。例如:PI,PASSWORD

參數(shù)的名字和變量的命名規(guī)范一致

數(shù)組應(yīng)該總是用這樣的方式來命名:byte[] buffer

總結(jié)

以上是生活随笔為你收集整理的java 内部类异常_Java笔记(三 内部类、异常、编程规范)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。