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 內部類 ...