內部類 異常 包

2021-06-29 03:27:04 字數 1844 閱讀 5168

1)內部類

內部類訪問規則:

1、內部類可以訪問外部類的中的成員,包括私有。(外部類不可以私有)之所以能訪問外部類是因為內部類中有外部類的引用,格式是 外部類名.this.

2、外部類要訪問內部類,需要建立內部類的物件。如果在主函式中直接訪問內部類,需要把返回值型別寫成  外部類.內部類 變數名 = new 外部物件().new內部物件()   

3、內部類被靜態修飾的話,要想訪問外部類,外部類也必須是靜態的。

如何在主函式中訪問被靜態修飾的內部類裡面的非靜態成員,格式:new 外部類.內部類().內部類非靜態成員

如何在主函式中訪問被靜態修飾的內部類裡面的靜態成員,格式:外部類.內部類.內部類靜態成員

4、匿名內部類

格式:new 父類或者介面名(){覆蓋父類或者介面的方法}.方法()

注意:匿名內部類中的方法最好不要超過三個,不然覆蓋起來會很痛苦。

2)異常

問題:1、嚴重類:error    一般不編寫針對性的**進行處理

2、異常:exception

eception -----》arithmeticexception 演算法異常

異常的處理:

trycatch(異常類 變數)

finally

關鍵字:throws程式編寫過程中如果有問題的地方要標記throws,提醒呼叫者去解決。

class t

int chu (int x,int y)  throws arithmeticexeption,arrayindexoutofboundseception    這個是多異常

class tdemo

public static void main (string agrs)

catch (arithmeticexeption a){}

catch (arrayindexoutofboundseception e){}  丟擲了幾個異常,就catch幾個

}自定義異常資訊  :因為父類中已經對異常資訊的操作都完成了,所以在自定義類時,只需要在子類中建構函式中用super語句就可以了。

class t extends exception

t (string msg)

throw new t ();程式中**有問題就用這個語句丟擲。

throw 和throws的區別

throws定義在函式上,throw定義在函式內

throws後面跟的是異常類,可以跟多個,用逗號隔開。throw後面跟的是異常物件

特點知識點:

runtimeexception及其子類

如果在函式內丟擲該異常,函式上可以不用宣告,編譯通過

如果在函式上丟擲該異常,呼叫者可以不用處理,編譯通過

finally **塊  程式一定會被執行到的**,一般是執行關閉程式的** 

只有一種情況finally不會被執行到,就是它的前面有system.exit(0);

異常在子父類中覆蓋的體現:

1、子類在覆蓋父類時,如果父類的方法丟擲了異常,子類的覆蓋方法只能丟擲父類的異常或者該異常的子類

2、如果父類的方法在丟擲多個異常時,那麼子類在丟擲異常時,只能丟擲父類異常的子集

3、如果父類或者介面的方法沒有丟擲異常,那麼子類在覆蓋其方法時也不能丟擲異常。

4、如果子類的方法發生了異常,只能try不能拋。

3)包package:對類檔案進行分類管理。相當於資料夾。

package放在程式的第一行。

執行的時候需要寫類的全名稱:即 包名.類名

包與包的訪問:

被訪問的包中的類的許可權需要public

引用包中的類,需要寫類的全名:即包名.類名

如果包中的類許可權沒有足夠大,相當於封裝。所以說不是私有就是封裝。

異常 內部類

將乙個類定義在另乙個給類裡面或者方法裡面,這樣的類就被稱為內部類。內部類可以分為四種 成員內部類 區域性內部類 匿名內部類 靜態內部類,下面我們逐一介紹這四種內部類。下面我們先介紹乙個普通的內部類 public class innerclasstest 我們來說一下內部類的作用以便以後我們什麼時候去...

內部類 成員內部類 區域性內部類 匿名內部類

public class 外部類 private int num 0 外部類如果要訪問內部類的成員,則需要通過內部類的物件訪問 使用方式 1.外部類使用內部類,主函式再使用外部類 2.通過new的方式 外部類.內部類 物件名 new 外部類 new 內部類 定義在方法內部的類,就是區域性內部類,只有...

內部類(成員內部類 靜態內部類 方法內部類)

一 成員內部類 最常見的內部類就是成員內部類,也稱作普通內部類 2 inner類中定義的test 方法可以訪問outer類中的資料,不受訪問控制符的影響。3 定義了成員內部類後,必須使用外部類物件來建立內部類物件,而不能直接去 new 乙個內部類物件,即 內部類 物件名 外部類物件.new 內部類 ...