枚举说明
1.java枚举是一个特殊的类,一般表示一组常亮
2.java枚举类使用enum关键字来定义,各个常亮使用逗号,分隔
在枚举类当中定义的变量是常亮
3.枚举类是一种特殊的类,有自己的成员变量,成员方法
构造器(构造器只能用private修饰)
注意常亮必须定义在第一行,才能够写其他方法(构造方法、实例方法)
4.枚举enum定义了枚举类默认继承了java.lang.Enum类,并实现了
java.lang.Seriablizable 和 java.lang.Comparable两个接口
5.枚举类所有实例(枚举值)必须在枚举类的第一行显示的列出,否则这个枚举类
将永远不能产生实例,在列出这些枚举值时,系统会默认加上public static final 修饰。
常用方法
values():返回枚举类中所有的值
ordinal():方法可以找到每个枚举常亮的索引
valueOf():返回返回指定字符串的枚举常量
语法
enum 枚举类名{
//枚举值
a,c,g,h
}
代码实例
public enum Enumne {
//第一行必须声明枚举值
//这里传入参数,调用有参构造方法
a("我是A"),b("我是B"),c("我是C"),d("我是D");
private String name;
//构造方法private修饰
private Enumne() {
}
private Enumne(String name) {
this.name=name;
}
void a () {
}
public String toString() {
return name;
}
}
public static void main(String[]args) {
//values用来获取所有枚举值
for(Enumne a :Enumne.values()) {
//ordinal用来显示索引
System.out.println(a.ordinal());
//通过toString方法来显示枚举当中的值
System.out.println(a);
}
//valueOf()通过指定字符串,返回枚举类型
System.out.println(Enumne.valueOf("a"));
}
注意
每个枚举都是通过Class在内部类实现的
在一个枚举当中,第一行只能定义常来枚举值
而那个枚举值在程序内部会给我们new一个对象
就是new当前枚举类的对象
由于构造方法只能是private,所以只能在本类构建对象
例如
总结
枚举
必须在第一行显示的声明枚举值
构造方法只能是private修饰的
枚举类不支持继承,因为构造方法是私有的,子类无法调用父类的构造方法
枚举里面可以定义:属性、实例方法、静态方法