註解及異常列舉

2021-10-08 02:11:48 字數 4456 閱讀 9425

/**

* 註解 : 是一種特殊的注釋, 特殊在於可以被編譯器, vm識別. 本質上是乙個修飾符, 註解都不能修飾語句.

* @override 作用是提醒編譯器, 它修飾的方法是乙個覆蓋方法, 請幫助我們作檢查 , 方法覆蓋條件的檢查.

* 只可以修飾方法.

* * 它可以

* 修飾類(type), 屬性(field), 構造器(constructor), 方法(method),

* 區域性變數(local_variable), 引數(parameter)

* * @suppresswarnings 抑制編譯器警告, 在使用時必須傳參, 說明它內部有屬性.

* * 元註解 : 註解的註解, 約束註解的使用的註解.

* @target 作用是約束註解可以修飾的目標.可以用在什麼位置, 預設情況是它可以修飾任意目標

* elementtype.type 型別(類型別,介面型別)

* elementtype.field 屬性

* elementtype.method 方法

* elementtype.constructor 構造器

* elementtype.parameter 引數

* * @retention 作用是約束註解可以停留在什麼時期, 是只在原始檔中呢, 還是在類檔案中, 還是都在且執行時能獲取.

*/// 自定義註解, 可以修飾任意目標. 這是乙個標記型註解

//@inte***ce myannotation {}

// 自定義註解, 可以修飾任意目標. 這是乙個有引數的註解, 預設可以修飾任意目標

/*@inte***ce myannotation */

/*@target() // 自定義註解只可以修飾類和屬性. 其他都不行了.預設情況下此註解停留在類檔案中

@inte***ce myannotation

*/

@target()

// 自定義註解只可以修飾類和屬性. 其他都不行了.

@retention

(retentionpolicy.runtime)

// myannotation註解就可以在執行時通過反射獲取並處理了..

@inte***ce

myannotation

//@override

@deprecated

@myannotation

(id =

1, name=

"abc"

)class

person

//@override

// ()

public

person

(@deprecated string name,

int age, string gender)

@deprecated

@suppresswarnings()

/*@myannotation(name="zzz")*/

public string getname()

/*@myannotation*/

public

void

setname

(@myannotation string name)

public

intgetage()

public

void

setage

(int age)

public string getgender()

public

void

setgender

(string gender)

@override

/*@myannotation*/

public string tostring()

';}}

/**

* 列舉 : 物件可數的型別, 不能再建立新物件.

*/

enum season 

private string color =

"黑色"

;private

season()

private

season

(string color)

public string getcolor()

public

void

setcolor

(string color)

@override

public string tostring()

';}}

public

class

enumtest

}}

enum week 

//宣告week列舉類,其中包含星期一至星期日的定義;

// 在main方法中從命令列接收乙個1-7的整數(使用integer.parseint方法轉換),

// 分別代表星期一至星期日,列印該值對應的列舉值,

public

class

enumexer

}public

static

void

main

(string[

] args)

week[

] values = week.

values()

; week value = values[i -1]

; system.out.

println

(value)

; enumexer exer =

newenumexer()

; exer.

printweek

(value)

;// 非靜態方法 它必須依賴物件!!!!!

}}

/**

* 異常 : 程式在執行時出現的非正常狀況, 如果不處理會導致程式崩潰.

* * 異常分類 :

* 1) 按照程度來分 :

* 1) error 嚴重錯誤

* 2) exception 一般問題

* 2) 按照處理方式來分 :

* 1) 受檢異常(checked) 編譯時異常 : 在程式中必須接受檢查和處理的異常

* exception及其子類, runtimeexception及其子類除外.

* * 2) 非受檢異常(unchecked) 執行時異常 : 在程式中不是必須接受檢查和處理的異常.

* error及其子類 太嚴重了

* runtimeexception及其子類 太輕微太常見

* * 無論是受檢異常還是非受檢異常都會導致程式崩潰.

* * 異常必須處理 : 異常的處理方式適用於所有異常, 包括error

* 1) 捕獲

* try catch (可能的異常型別1 引用)

* 2)

* 3)

* */

public

static

void

main

(string[

] args)

catch

(arrayindexoutofbound***ception e)

catch

(numberformatexception e)

catch

(exception e)

// 被保護的語句

system.out.

println

("main end");

// 這是核心**...

}}

/**

* ** : 把**物件當成被**物件來使用.

* 場景 :

* 1 使用者無法直接建立被**物件

* 2 對於被**物件的方法有改進的需求.但是同時不能修改被**類.

*/

inte***ce

houserent

class

fangdong

implements

houserent

}class

fangdong2

implements

houserent

}class

lianjia

implements

houserent

}public

class

proxytest

}

異常 列舉型別 及邏輯結構

1 異常捕獲 我們在程式中經常會遇到各種各樣的異常,如果想要您的程式變得堅強一些,在您的 中應該經常性的使用try catch來進行捕獲異常。語法 try try和catch之間不能有任何 catch 執行過程 如果try中的 沒有出現異常,那麼catch中的 不會執行。如果try中的 出現異常,哪...

異常 反射 列舉

1 包裝類 1 作用 將8 種基本資料型別包裝成類的形式 2 integer character float double byte short long boolean 3 character boolean 繼承與object 類 其餘的繼承於 number類 2 裝箱與拆箱 1 裝箱 將基本資...

列舉和異常

預設繼承類,所以只能實現介面 列舉類構造方法預設為私有方法。列舉可以有屬性,但是屬性需要在構造方法中賦值 public class demo4 enum override public string tostring enumset enumset enumset.allof season.clas...