枚举
- 自定义枚举类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25public class Season {
private String name;
private String desc;
// 枚举对象/属性使用 final+static 共同修饰,实现底层优化
public static final Season SPTING = new Season("春天","温暖");
public static final Season SUMMMER = new Season("夏天","炎热");
public static final Season AUTUMN = new Season("秋天","凉爽");
public static final Season WINTER = new Season("冬天","寒冷");
// 1.私有化构造器防止外部可以直接实例化对象
private Season(String name, String desc) {
this.name = name;
this.desc = desc;
}
// 2. 只允许访问属性,不允许修改属性
public String getName() {
return name;
}
public String getDesc() {
return desc;
}
} - 使用 enum 定义枚举
1
2
3
4
5
6
7
8
9
10
11
12public class Main {
public static void main(String[] args) {
Season spring = Season.SPTING;
// 输出枚举对象的名称
System.out.println(spring.name());
// 获取所有枚举对象
Season[] values = Season.values();
for (Season se: values) {
System.out.println(se);
}
}
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20enum Season {
// 枚举对象/属性使用 final+static 共同修饰,实现底层优化
SPTING("春天","温暖"),SUMMMER("夏天","炎热"),AUTUMN("秋天","凉爽"),WINTER("冬天","寒冷");
private String name;
private String desc;
private Season(String name, String desc) {
this.name = name;
this.desc = desc;
}
public String getName() {
return name;
}
public String getDesc() {
return desc;
}
} - 注意事项
- 当我们使用enum关键字开发一个枚举类型时,默认会继承Enum类,而且是一个final类
- 当使用无参构造器创建枚举对象时,则实参列表和小括号都可以省略
- 当有多个枚举对象时,使用
,
间隔,最后一个分号结尾 - 枚举对象必须放在枚举类的行首
- enum 不允许继承其他类,因为它隐式的继承了Enum类,但是他可以实现接口
注解
1 | import java.util.ArrayList; |
- 四类元注解 【了解】
- Retention //指定注解的作用范围 SOURCE/CLASS/RUNTIME
- Target // 指定注解可以在那些地方使用
- Documented // 指定该注解是否会在javadoc体现
- Inherited // 子类会继承父类注解