枚举的一个典型的例子
public enum size{SMALL,MEDIUM,LARGE,EXTRA_LARGE};
可以在枚举类中添加一些构造器,方法和域。java核心技术中给出了一个很好的例子。
import java.util.Scanner;
public class EnumTest {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("enter a size:(SMALL,MEDIUM,LARGE,EXTAR_LARGE)");
String input = in.next().toUpperCase();
Size size = Enum.valueOf(Size.class, input);//得到例如Size.SMALL
System.out.println("abbreviation=" + size.getAbbreviation());
if(size == Size.EXTAR_LARGE){
System.out.println("Good job--you paid attention to the _.");
}
}
}
//枚举类
enum Size{
SMALL("S"),MEDIUM("M"),LARGE("L"),EXTAR_LARGE("XL");
private String abbreviation;
private Size(String abbreviation){
this.abbreviation = abbreviation;
}
public String getAbbreviation(){
return abbreviation;
}
}
valueof()方法时Enum类的一个静态方法,它返回带指定名称的指定枚举类型的枚举常量,比如返回:Size.SMALL。
SMALL("S"),MEDIUM("M"),LARGE("L"),EXTAR_LARGE("XL");刚开始对这种写法感到非常不适应,编译器也会报错,原来SMALL就好像new了一个枚举的对像出来,只不过还要添加一个构造方法而已。