【笔记】Java枚举类型

前言

Java枚举类型学习笔记

枚举类型的定义与对象创建

有參构造枚举与无參构造枚举

  • 枚举名首字母大写,相当于一个特殊的类
  • 枚举值全大写,相当于一个常量

定义无參构造的枚举类型

1
2
3
enum 枚举名 {
枚举值, 枚举值, ...;
}
  • 无參构造的枚举类中,定义枚举值结尾的分号可以省略
1
2
3
enum 枚举名 {
枚举值, 枚举值, ...
}

定义有參构造的枚举类型

  • 如果定义有參构造的枚举类型,需要在定义枚举值时候根据构造方法传递参数
  • 只有定义了get和set方法,才可以操作枚举值的属性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
enum 枚举名 {

枚举值(""), 枚举值(""), ...;

private String value;

枚举名(String value) {
this.value = value;
}

public String getValue() {
return value;
}

public void setValue(String value) {
this.value = value;
}
}

创建枚举对象

1
枚举名 枚举变量名 = 枚举名.枚举值;

操作枚举值的属性

  • 如果定义了有參构造的枚举类型
    • 可以通过get方法获取枚举值的属性
    • 可以通过set方法修改枚举值的属性
通过枚举对象操作枚举值的属性
1
2
3
4
枚举名 枚举变量名 = 枚举名.枚举值;

枚举值对象名.getValue();
枚举值对象名.setValue("");
直接操作枚举值的属性
1
2
枚举名.枚举值.getValue();
枚举名.枚举值.setValue("");

公共枚举方法与重写枚举方法

定义枚举类型的公共方法

1
2
3
4
5
6
7
8
enum 枚举名 {

枚举值("", ""), 枚举值("", ""), ...;

public void 方法名() {
...
}
}

重写枚举类型的公共方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
enum 枚举名 {

枚举值("", "") {
// 重写枚举类的方法
public void 方法名() {
...
}
},
枚举值("", ""),
...;

public void 方法名() {
...
}
}

调用枚举方法

  • 如果指定的枚举值重写了公共枚举方法,则会执行重写方法
  • 如果指定的枚举值没有重写公共方法,则会执行公共方法

直接调用

1
枚举名.枚举值.方法名();

通过枚举变量调用

1
2
枚举名 枚举变量名 = 枚举名.枚举值;
枚举变量名.方法名();

完成