等看完了Thinking in Java后还是很有必要看一遍Core Java的,JDK5新增的东西Thinking in Java都没提到。
枚举类
l public enum Size { SMALL, MEDIUM, LARGE, EXTRA_LARGE };
这样已经定义了一个Size类,它是java.lang.Enum类的子类。
l 枚举类的相等判断可以直接使用==符号。
l 可以在枚举类中添加构造器、方法和数据域。构造器只能在枚举常量初始化的时候使用。
enum Size
{
SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA_LARGE("XL");
private Size(String abbreviation) { this.abbreviation = abbreviation; }
public String getAbbreviation() { return abbreviation; }
private String abbreviation;
}
l toString()方法返回枚举常量的常量名,如
Size.SMALL.toString()
返回”SMALL”
l valueOf方法则将由变量名得到枚举常量,如
Size s = (Size) Enum.valueOf(Size.class, “SMALL”);
将s设置为Size.SMALL
l values()方法返回所有的枚举常量,如
Size[] values = Size.values();
l 事实上,Enum类含有类型参数,例如Size类实际上是Enum>Size<