Java Enum用法总结

常量

枚举类可以用来当做常量使用,非常的方便。

1
2
3
public enum Color {
RED, GREEN, BLACK, YELLOW
}

枚举类可以做switch中的判定类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class Aweek {
Day day = Day.MONDAY;
public void getDay() {
switch (day) {
case MONDAY:
day = Day.MONDAY;
break;
case TUESDAY:
day = Day.TUESDAY;
break;
case WEDSDAY:
day = Day.WEDSDAY;
break;
case THURSDAY:
day = Day.THURSDAY;
break;
case SATURDAY:
day = Day.SATURDAY;
break;
case SUNDAY:
day = Day.SUNDAY;
break;
case FRIDAY:
day = Day.FRIDAY;
break;
}
System.out.println(day);
}
public static void main(String[] args) {
new Aweek().getDay();
}
}
enum Day {
MONDAY, TUESDAY, WEDSDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

枚举中可以添加方法,也可以覆盖方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
public enum Colors{
RED("red", 1), GREEN("green", 2), BLANK("blank", 3), YELLOW("yellow", 4);
//成员变量
private String name;
private int index;
// 构造方法
Colors(String name, int index) {
this.name = name;
this.index = index;
}
// 覆盖方法
@Override
public String toString() {
return this.index + "" + this.name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
//普通方法
public static String getName(int index) {
for (Colors colors : Colors.values()) {
if (colors.getIndex() == index)
return colors.getName();
}
return null;
}
}

枚举类可以实现接口,但是不能继承类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public interface Print {
void print();
}
public enum Colors implements Print{
RED("red", 1), GREEN("green", 2), BLANK("blank", 3), YELLOW("yellow", 4);
//成员变量
private String name;
private int index;
// 构造方法
Colors(String name, int index) {
this.name = name;
this.index = index;
}
@Override
public void print() {
System.out.println("haha");
}
}

使用接口来组织枚举的结构

1
2
3
4
5
6
7
8
9
public interface Food {
enum Coffee implements Food {
BLACK_COFFEE, DECAF_CAFFEE, LATTE, CAPPUCCINO
}
enum Dessert implements Food{
FRUIT, CAKE, GELATO
}
}
Donate comment here