列舉概述
指將變數的值一一列出來,變數的值只限於列舉出來的值的範圍內。
舉例:一周只有7天,一年只有12個月等。
只有列舉項的列舉類
public enum 列舉類名
自定義列舉類
public
abstract
class
direction3};
public
static
final direction3 behind =
newdirection3
("後")}
;public
static
final direction3 left =
newdirection3
("左")}
;public
static
final direction3 right =
newdirection3
("右")}
;// 構造私有,別人就不能無限的建立了
// private direction2()
// 加入成員變數,並去掉無參構造
private string name;
private
direction3
(string name)
public string getname()
// 加入抽象方法
public
abstract
void
show()
;}
public
class
directiondemo
}
列舉類
package cn.itcast_02;
/* * 通過jdk5提供的列舉來做列舉類
*/public
enum direction3 },
behind
("後")}
,left
("左")}
,right
("右")}
;private string name;
private
direction3
(string name)
public string getname()
public
abstract
void
show()
;}
public
class
directiondemo
}}
注意事項
定義列舉類要用關鍵字enum
所有列舉類都是enum的子類
列舉類的第一行上必須是列舉項,最後乙個列舉項後的分號是可以省略的,但是如果列舉類有其他的東西,
這個分號就不能省略。建議不要省略
列舉類可以有構造器,但必須是private的,它預設的也是private的。列舉項的用法比較特殊:列舉(「」);
列舉類也可以有抽象方法,但是列舉項必須重寫該方法
列舉在switch語句中的使用
列舉類中的幾個常見方法
int compareto(e o)
對比位置
// int compareto(e o)
direction2 d21 = direction2.front;
direction2 d22 = direction2.behind;
direction2 d23 = direction2.left;
direction2 d24 = direction2.right;
system.out.
println
(d21.
compareto
(d21));
system.out.
println
(d21.
compareto
(d24));
system.out.
println
(d24.
compareto
(d21)
);
string name()
返回名稱
// string name()
system.out.
println
(d21.
name()
);system.out.
println
(d22.
name()
);system.out.
println
(d23.
name()
);system.out.
println
(d24.
name()
);
string tostring()
// string tostring()
system.out.
println
(d21.
tostring()
);system.out.
println
(d22.
tostring()
);system.out.
println
(d23.
tostring()
);system.out.
println
(d24.
tostring()
);
int ordinal()
返回當前列舉所在的序列,利用這個函式,可以自增長的獲取我們定義的excel的cell位置,然後進行寫入資料操作
// int ordinal()
system.out.
println
(d21.
ordinal()
);system.out.
println
(d22.
ordinal()
);system.out.
println
(d23.
ordinal()
);system.out.
println
(d24.
ordinal()
);
t valueof(class type,string name)
傳指定class 指定物件 實現列舉
direction2 d = enum.
valueof
(direction2.
class
,"front");
system.out.
println
(d.getname()
);system.out.
println
("----------------"
);
values()
每個列舉類都具有該方法,它遍歷列舉類的所有列舉值非常方便***
direction2[
] dirs = direction2.
values()
;for
(direction2 d2 : dirs)
實現介面的列舉類
由列舉類實現介面裡的方法,每個列舉值呼叫該方法由相同的行為方式。若要每個列舉值在呼叫該方法時由不同的行為方式,可讓每個列舉值分別實現該方法。public enum gender implements genderdesc female 女 上例中male,female建立列舉值是,不是直接建立gen...
C 列舉 類 多型 介面
列舉 enum day int weekdaystart int day.mon 類 物件是類的例項。構成類的方法和變數成為類的成員 當你定義乙個類時,你定義了乙個資料型別的藍圖。這實際上並沒有定義任何的資料,但它定義了類的名稱意味著什麼,也就是說,類的物件由什麼組成及在這個物件上可執行什麼操作。類...
列舉類實現介面 精
列舉類實現介面 精 列舉類和普通類實現介面一樣嗎?列舉類實現介面與普通類實現介面是一樣的,都需要實現介面的抽象方法。但是!列舉類 實現介面的同乙個抽象方法,該抽象方法在列舉類不同物件實現不同的行為。如何實現那?簡單 只要在列舉類的每個物件都重寫該方法就可以做到不同物件實現該抽象方法不同的行為。定義乙...