1.object類
所有類的超類。2.內部類equals()方法——檢測兩個物件是否相同
tostring()方法——返回物件的字串表示(宜複寫)
getclass()方法——得到該物件所屬類的名稱
1)方便訪問外部類的成員變數,包括私有成員變數。3.異常(exception)2)內部類函式訪問外部類成員變數——外部類名.this.變數名;
3)內部類可以被private修飾,則不能被其他外部類訪問。
4)非私有的內部類,可以被其他外部類訪問 eg. outer.inner a = new outer().inner()
靜態內部類——static修飾
訪問靜態內部類非靜態成員new outer.inner().function()
訪問靜態內部類靜態成員 outer.inner.function()
非靜態內部類不能有靜態成員。
區域性內部類(在方法裡的內部類):
1)不可以被成員修飾符修飾
2)可以訪問外部類成員,但不能訪問所在區域性的變數,除非該變數被final修飾。
匿名內部類——其實就是為了簡寫,直接省去類定義,生成並使用乙個沒有名稱的物件。
1)匿名的內部類必須有繼承或者是實現。
2)格式:new 父類(介面名)()
3)建立的匿名物件可以只用一次,也可以匯入乙個物件變數多次使用,但多次使用涉及到多型,只能使用父類或介面中定義的內容。
1)定義:程式執行時出現的不正常情況,在可以處理的範圍內。(不可處理則是error)throwable : error;exception.
異常的分類:runtime異常——程式錯誤導致的異常(不用宣告,也無需處理,想丟擲就丟擲即可,好東西啊!)
其他異常——程式無問題,其他原因導致的異常,
2)異常的宣告——throws關鍵字
如果程式本身沒有問題,那資料本身就不會發生問題,只有資料變化過程中才會產生問題,也就是說——非runtime異常只會發生在方法中(構造器和一般方法)。
當乙個方法可能產生異常時,需要將這些異常宣告在方法定義中。
自定義異常:
自定義乙個繼承exception的類,利用**實現在希望跳出異常的地方,運用throw關鍵字手動拋出自定義異常的物件。
格式:
throws在函式上,丟擲異常類,多個異常類用逗號隔開。class aaexception extends exception
class test
}
throw在函式內,丟擲異常物件。
3)宣告了異常後,有兩種解決辦法:
(1)、可在呼叫時直接進行手動處理,也就是try-catch流程。
(2)、也可以繼續丟擲異常,也就是在呼叫這個方法的上一級方法繼續宣告丟擲。(這種向上丟擲如果不斷進行,最後會到達main函式,main函式繼續丟擲就拋給了虛擬機器,讓虛擬機器自動處理)異常的手動處理:
格式:catch塊和finally塊至少存在其一;try
{ 需要被檢測的**,發現異常則進入catch;
}catch(異常類 變數)
{ 處理異常的**(提供各種異常資訊);
}finally
{ 一定執行的語句,通常用於關閉資源;(如果catch裡執行了system.exit(0),則finally不被執行。)
}
catch塊可以有多塊;
多個catch塊的時候,父類的catch放在下面。
4)覆蓋時的異常特點
子類覆蓋父類時,所覆蓋的方法如果有異常,則子類的異常最好為父類的異常的子集和子異常。
除非子類方法直接進行處理,不進行丟擲。
黑馬程式設計師 JAVA學習筆記2
asp.net android ios開發 net培訓 期待與您交流!詳細請檢視 介面中的成員變數都是publci 的static 的和final 的。介面中的方法都是 public 的。單例模式 表示乙個類只會生成唯一的乙個物件。怎樣才能乙個類只會生成乙個物件呢 首先其構造方法是不應該被外界訪問的...
黑馬程式設計師 Java 學習筆記
filewriter 建立乙個filewriter物件,該物件一被初始化就必須明確被操作的檔案,而且該檔案會被建立到指定的目錄下。如果該目錄下已有同名檔案,將被覆蓋。下面的例子是將客戶端的檔案拷貝到伺服器上 客戶端 socket s newsocket 1.1.1.1 10000 定義客戶端的套接字...
java學習筆記 2
textfield 文字輸入框 持有物件引用物件之間互相不引用,只是通過對總的物件的引用來引用其他物件 內部類的好處可以訪問包裝類的成員 更清晰的組織邏輯,防止不應該被其他類訪問的類的訪問 用法 不允許或不需要其他類訪問時 paint 每次需要重畫的時候自動呼叫paint方法 graphics 相當...