Java——列舉
阿新 • • 發佈:2018-12-20
從JDK1.5開始有了列舉,java中列舉使用enum關鍵字定義,實際上列舉就是一種高階的多例設計模式
enum Color{
RED,BLUE,GREEN;
}
public class Test {
public static void main(String[] args) {
System.out.println(Color.RED);
}
}
這樣定義的列舉本質上是一個類
1、Enum類
JDK1.5新增的enum列舉結構並不是新的結構,使用enum定義的列舉本質上是一個類,預設繼承java.lang.Enum父類
Enum類中有以下方法
1.構造方法
protected Enum(String name, int ordinal)
2.取得列舉名字
public final String name()
3.取得列舉編號
public final int ordinal()
4.取得列舉所有物件
列舉類.values()
values()返回的是一個列舉的物件陣列。
enum與Enum區別:enum是一個關鍵字,使用enum定義的列舉類本質上就相對於一個類繼承了Enum這個抽象類而已。
2.列舉中定義其他結構
雖然列舉等同於多例設計,但是多例設計是在一個類中產生的,所以該類中可以定義更多的屬性或方法。所以在列舉設計的時候考慮到這些因素,提出了更為全面的設計方案:可以在列舉中定義屬性、方法、內部類、實現介面。
列舉物件必須放在首行宣告
enum Color{ RED("紅色"),BLUE("藍色"),GREEN("綠色"); private String title; private Color(String titie){//構造方法私有化 this.title = titie; } @Override public String toString() { return this.title; } } public class Test { public static void main(String[] args) { System.out.println(Color.RED); } }
3.列舉實現介面
此時列舉中的每個物件都成為了介面物件
interface IColor{
String getColor();
}
enum Color implements IColor{
RED("紅色"),BLUE("藍色"),GREEN("綠色");
private String title;
private Color(String titie){
this.title = titie;
}
@Override
public String toString() {
return this.title;
}
@Override
public String getColor() {
return title;
}
}
public class Test {
public static void main(String[] args) {
IColor iColor = Color.BLUE;
System.out.println(Color.RED);
System.out.println(iColor.getColor());
}
}