枚举类
_JDK5新特性:
自动拆装箱 , 泛型 , 增强for , 静态导入 , 可变参数 , 枚举
枚举概述:
就是一个类只能存在几个固定的对象,那么这个就是枚举.我们就可以使用这些对象可以表示一些固定的值.
举例:一周只有7天,一年只有12个月等。
1.定义枚举类要用关键字enum
2.所有枚举类都是Enum的子类
3.枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,但是如果枚
举类有其他的东西,这个分号就不能省略。建议不要省略
4.枚举类可以有构造器,但必须是private的,它默认的也是private的。枚举项的用法比较特殊:
枚举(“”);
枚举类也可以有抽象方法,
但是枚举项必须重写该方法
枚举在switch语句中的使用
枚举类的常见方法:
int ordinal ():
返回枚举项的序号
int compareTo (E o):
比较两个枚举项的 返回的是两个枚举项序号的 差值
String name ():
获取枚举项的名称
String toString () :
获取枚举项的名称
< T > T valueOf (Class < T > type, String name):
用来获取指定的枚举项 参数1:枚举类对应的字节码对象 参数2 枚举项的名称
values() :
获取所有的枚举项;此方法虽然在JDK文档中查找不到,但每个枚举类都具有该方法,它遍历枚举类的所有枚举值非常方便
例:
public enum Direction {
FRONT("前"){
@Override
public void show() {
System.out.println("");
}
}, AFTER("后"){
@Override
public void show() {
}
}, LEFT("后"){
@Override
public void show() {
}
},RIGHT("右"){
@Override
public void show() {
}
}; //下面如果有代码,; 分号不要省略,每个枚举项,用逗号隔开
private Direction(String name){}
public abstract void show();
}
public interface MyInerface {
String NAME="abc";
}
public class MyTest {
public static void main(String[] args) {
Direction front = Direction.FRONT;
Direction after = Direction.AFTER;
Direction left = Direction.LEFT;
Direction right = Direction.RIGHT;
System.out.println(front.toString());
System.out.println(after);
System.out.println(left);
System.out.println(right);
}
}