到目前为止,我们仅仅使用了最简单的语法定义枚举类型,其实枚举类型可以做更多的事情,在Tiger的定义中,枚举是一种新的类型,允许用常量来表示特定的数据片断,它能胜任普通类的大部分功能,如定义自己的构造函数、方法、属性等等。这也是Java与C/C++或是Pascal中不同的地方,在那两种语言中枚举类型代表的就是一些int类型的数字,但在Java中枚举更像是一个类。
1 import java.util.*; 2 3 public class EnumTest { 4 5 /** 6 * @param args 7 */ 8 public static void main(String[] args) { 9 // TODO Auto-generated method stub10 Scanner in=new Scanner(System.in);11 System.out.print("Enter a size: (SMALL,MEDIUM,LARGE,EXTRA_LARGE)");12 String input=in.next().toUpperCase();13 Size size=Enum.valueOf(Size.class, input);14 System.out.println("size="+size);15 System.out.println("abreviation="+size.getAbbreviation());16 if (size==Size.EXTRA_LARGE)17 System.out.println("Good job--you paid attention to the _.");18 }19 }20 21 enum Size22 {23 SMALL("S"),MEDIUM("M"),LARGE("L"),EXTRA_LARGE("XL");24 private Size(String abbreviation) { this.abbreviation=abbreviation;}25 public String getAbbreviation() { return abbreviation;}26 private String abbreviation;27 }