列舉類應用

2021-08-15 09:11:47 字數 3039 閱讀 8782

其中red,green,black分別代表乙個color物件,是乙個color物件的例項

public enum color

測試方法

package com

.lzj

.enum1;

public class colortest

system.out

.println("********************");

/*valueof根據乙個列舉的名字獲取列舉類中列舉物件*/

color c1 = color.valueof("red");

system.out

.println("c1 : " + c1);

system.out

.println("********************=");

switch (c1)

}}

輸出結果:

c : red

class com.lzj.enum1.color

c : green

class com.lzj.enum1.color

c : black

class com.lzj.enum1.color

********************

c1 : red

********************=

red

red(「紅色」, 1)中有兩個引數,分別物件color列舉類中的name、index兩個屬性,可以通過set方法來重新設定red列舉物件中的屬性的值。

public

enum color

public string getname()

public

void

setname(string name)

public

intgetindex()

public

void

setindex(int index)

}

測試方法:

public

class colortest

color black = color.valueof("black");

system.out.println("black.getname :" + black.getname() + ";black.getindex :" + black.getindex());

}}

輸出結果:

c

.getname :紅色;c

.getindex:1c

.getname :綠色;c

.getindex:2c

.getname :黑色;c

.getindex

:3black

.getname :黑色;black

.getindex

:3

列舉類實質就是乙個普通的類演變的,可以完全當做乙個普通的類來使用,只是在定義列舉類的時候,在類中先例項出了幾個類的靜態常量。

上面的color列舉類等價下下面的color類

public

class

color

private

static

final color red = new color("紅色", 1);

private

static

final color green = new color("綠色", 2);

private

static

final color black = new color("黑色", 3);

public string getname()

public

void

setname(string name)

public

intgetindex()

public

void

setindex(int index)

}

只是把

private

static

final color red = new color("紅色", 1);

private

static

final color green = new color("綠色", 2);

private

static

final color black = new color("黑色", 3);

省略成了

red("紅色", 1), green("綠色", 2), black("黑色", 3);
然後把class關鍵字換成了enum,用法都一樣。

既然enum列舉類同普通的類一樣,只是列舉類中的列舉物件都定義成了靜態的常量物件,不能被修改列舉物件的應用位址值。但可以像普通類一樣實現介面。例2中列舉類實現介面如下

public

inte***ce info

package com.lzj.enum2;

public

enum color implements info

}, green("綠色", 2)

}, black("黑色", 3)

};private string name;

private

int index;

private

color(string name, int index)

public string getname()

public

void

setname(string name)

public

intgetindex()

public

void

setindex(int index)

}

參考部落格:

列舉類綜合應用

乙個列舉類,可以看成包括它的一些子類 列舉 的乙個類,而且列舉類的構造方法只能是私有的,如下面 以交燈為示例 1 public class test 1415 valueof 方法可以把字串轉換成相應的列舉物件 16 system.out.println light.red light.valueo...

java列舉類的應用

應用場景1 假設將學習成績分為a b c d四個等級,這只是類別很少的一種情況,例如我們的訂單日誌的情況就可能非常多 我們歸納這些常量資訊,所以列舉是乙個非常不錯的選擇 同時提供了一些特殊的方法供我們使用。例如 intcompareto e o 比較此列舉與指定物件的順序。classgetdecla...

列舉類 強列舉

c 11增加了列舉類和列舉結構體。舊的c 列舉型別有乙個壞處是,他們將列舉成員引入周圍的命名空間,導致了名稱衝突 enum esecondcount int esecond 3 與列舉宣告在同乙個作用域 此外,舊的c enum會隱式轉換為int,當我們不預期或不需要這樣的轉換時會導致難以察覺的錯誤 ...