1.基本概念
早期我们在定义一组常量的时候一般是使用一个接口,将常量定义成接口中的成员,同时接口中还有一些需要被子类实现的方法。从JDK1.5 开始,我们可以使用一种新的方式来定义常量
这种新的方式就是枚举类型,我们只是用枚举来定义常量,方便程序的理解和维护。
2.枚举的定义方式
2.1 语法:
枚举定义的语法: enum 枚举名 { 枚举常量集合 }
同时我们还可以通过小括号给每一个常量指定一个值
2.2 注意事项
枚举中不仅可以定义常量 同时还可以定义一些方法等,但一般不建议这样使用,一般只是用枚举来定义常量集合。
枚举中的常量默认是public static final 的。
可以使用小括号为枚举常量赋值,但是要手写私有的构造函数和手写返回值。(一般不建议使用)
2.3 例子
1 enum People{ 2 CHILD, 3 KID, 4 ADULT, 5 OLDER; 6 } 7 8 public class TestEnum { 9 public static void main(String[] args) { 10 for(People p:People.values()) { 11 System.out.println(p); 12 } 13 } 14 }
CHILD
KID
ADULT
OLDER
3.枚举中的一些方法
3.1 自定义值方法
为枚举添加一个私有属性,手写私有构造方法和get/set 注意,一旦写了带参的私有构造方法就要求每一个常量都必须赋一个值。(因为无参构造被覆盖)
enum People{ /** * 由于写了带参私有构造方法 * 无参构造方法被覆盖 * 所以每一项都必须有值 */ CHILD(0), KID(1), ADULT(2), OLDER(3); private int value;//为枚举每一项常量定义一个int值 private People(int val) { //手写私有构造方法 (必须私有化) this.value = val; } public int getValue() { return this.value; } } public class TestEnum { public static void main(String[] args) { for(People p:People.values()) { System.out.println(p +" 的值是:"+ p.getValue()); } } }
CHILD 的值是:0
KID 的值是:1
ADULT 的值是:2
OLDER 的值是:3