四、枚举:
枚举的是在 Java 1.5SE 中开始支持的,以下为 Java 枚举的基本概念和应用技巧:
1. 所有的 enum 对象均是由 class 对象作为底层支持的,该对象继承自 JDK 中的
Enum,但是该底层类确实 final 类,既不能再被其他的类继承。
2. 枚举的出现完全替代了原有的"public static final"常量表示法,枚举以一种更加合理、
优雅和安全的方式替换了原有的方案。其最基本的声明方式如下:
1 public enum Color {
2 RED, BLUE, BLACK, YELLOW
3 }
3. Enum 中构造函数的原型为 protected Enum(String name, int ordinal),自定义的枚举
对象会将自身的名字以字符串的形式,同时将自己在整个常量从声明的顺序作为超类构
造函数的两个参数传给超类并由超类完成必要的初始化,如: RED 枚举常量将调用
super("RED",0)。
4. 枚举中可以定义构造函数、域方法和域字段,但是枚举中的构造器必须是私有
(private)的,如果自定义枚举中有了自定义的构造函数,那么每个枚举常量在声明时必须
按照自定义构造函数的规则传入参数。枚举对象的构造函数只是在枚举常量对象声明的时
刻才调用一次,之后再也不能像普通对象那样通过 new 的方法创建,见如下代码:
1 public enum Size {
2 SMALL(0.8),
3 MEDIUM(1.0),
4 LARGE(1.2);
5 double pricingFactor;
6 private Size(double p) {
7 pricingFactor = p;
8 }
9 }
注:枚举常量列表必须写在最前面声明,否则编译器报错。
5. 可以给自定义枚举添加域方法,见如下代码:
1 public enum Size {
2 SMALL(0.8),
3 MEDIUM(1.0),
4 LARGE(1.2);
5 private double pricingFactor;
6 Size(double p) {
7 pricingFactor = p;
8 }
9 public double getPricingFactor() {
10 return pricingFactor;
11 }
12 }
6. 枚举中常用域方法:
1 public enum Size{
2 SMALL,
3 MEDIUM,