在Java中,枚举(enum)与类(class)、接口(interface)属于同一个级别。
使用枚举的Java程序:
public class Main {public static void main(String[] args) {
Week w = Week.Monday
System.out.println(w)
}
}
//定义枚举
enum Week {
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
}
运行测试:
Monday由于每个程序员在开始编程时一般会首先学习C/C++,然后再学习Java,在C++中枚举是可以定义枚举值为特定的整数的,但这在Java中却没有得到支持,大概C/C++中的枚举代表了数值型常量多一些,而Java中枚举值,更确切的说为枚举类型对象。在Java中定义一个简单的枚举类如下所示。枚举(从JDK1.5开始有)用于代表”实例已经固定“的类,而且定义时就必须在【第一行】创建初始化并列出来。
语法格式:
修饰符 enum 枚举名{
//立即在第一行列出该枚举的所有实例。
}
—— 修饰符 可以是 public | 省略 | abstract | final。 abstract与final必须出现其中一个。
—— 枚举的构造器只能用private修饰。
—— 枚举类的实例必须在第一行显式的列出。
所有的枚举都有一个values()方法,返回枚举实例
switch(byte|short|char|int|String|枚举)
●有了枚举之后,它的实例已经创建出来了,只需要用它们就行了。
●枚举可以有Field,方法,构造器(只能是private修饰),初始化块,内部类。
列出枚举值,并不是简单的定义几个枚举值的变量名。
而是调用枚举类的构造器来创建相应的实例。
定义枚举的方法时要非常小心,
●包含抽象方法的枚举类
●枚举可以实现接口。
A。实现接口,并直接实现所有的抽象方法。
此时枚举类不再是抽象枚举了。
B。实现接口,但并不直接实现抽象方法。
此时枚举类就只能是抽象枚举类。