JDK5 0新特性系列 3 列舉型別

2021-09-08 15:54:50 字數 2377 閱讀 7203

/**

*enum

關鍵字表示列舉型別,它的作用相當於類宣告中的

class

關鍵字 *

列舉型別不能有

public

的構造方法

*所有的列舉值都是

public

、static

、final的,

這些修飾符都是自動加上

,無須程式設計師手動新增

*列舉值之間用逗號

","分開

,最後乙個列舉值後面接分號

";" *

每乙個列舉值是乙個列舉型別的例項

*可以在列舉型別中定義非列舉值變數

,這些變數可以使用任何修飾符

*變數和方法的定義必須在列舉值後面定義

*/publicclassenumtype

publicstaticvoidmain(string args)

system.

out.println();

person p = person.

chinese;

//比較列舉值

if(p == person.

chinese)

//使用valueof

獲得字串描述的列舉值

p = person.valueof(

"american");

//在switch

中使用列舉值

//switch

中可以放置的型別有

byte,short,int,char,enum,

注意沒有

long

switch(p)

//獲得列舉值在列舉型別中宣告的順序

system.

out.println(

"american

的序號: "

+ person.

american

.ordinal());

system.

out.println(

"chinese

的序號: "

+ person.

chinese

.ordinal());

system.

out.println(

"english

的序號: "

+ person.

english

.ordinal());

//使用更複雜的列舉型別

complexperson

complexperson cp = complexperson.

chinese;

//因為為chinese

列舉值覆蓋了

tostring()方法,

所以呼叫的是

chinese

的tostring方法

system.

out.println(

"cp.tostring(): "

+ cp);

cp = complexperson.

american;

//因為沒有為

american

列舉值覆蓋

tostring方法,

所以呼叫預設的

tosting方法

cp = complexperson.

other;

system.

out.println(

"cp.getvalue(): "

+ cp.getvalue());

}

/**乙個更複雜的列舉型別*/

enumcomplexperson

},

american("

美國人"),

english("

英國人")

},

other

};privatestring 

value

=null

//列舉類值的

value屬性,

只能宣告在列舉值的後面

//預設的構造方法

complexperson()

//帶引數的構造方法

complexperson(string value)

//獲取

value屬性

publicstring getvalue()}}

JDK 5 0新特性 列舉

列舉 需要在一定範圍內取值,這個值只能是這個範圍內的任意乙個。例如 交通訊號燈。列舉的構造方法是私有的。建立列舉的格式 其中enum為列舉關鍵字 enum 列舉型別名稱例如紅綠燈的列舉 private color color test public void test enum color列舉的常用...

掌握JDK1 5列舉型別

enum作為sun全新引進的乙個關鍵字,看起來很象是特殊的class,它也可以有自己的變數,可以定義自己的方法,可以實現乙個或者多個介面。當我們在宣告乙個enum型別時,我們應該注意到enum型別有如下的一些特徵。1 它不能有public的建構函式,這樣做可以保證客戶 沒有辦法新建乙個enum的例項...

JDK5 0新特性 1 自動裝箱和拆箱

基本型別的資料值可以直接賦給基本資料物件,基本資料的物件也可以直接賦給基本資料變數 在表示式中,基本型別的資料值可以和基本資料物件進行運算 基本資料型別的陣列不能實現自動裝箱和拆箱,即int不能當成integer使用 演示基本資料型別的自動拆箱和裝箱 public class autobox boo...