定义枚举类型:
public enum Size{SMALL,MEDIUM,LARGE};
其实这定义了一个类,有三个实例,尽量不要构造新的对象。所以,在比较枚举类型的值的时候,永远不需要eauals,直接用 == .
还可以在枚举类型中添加一些构造器,方法和域。
enum SIZE{
SMALL("S"),MEDIUM("M"),LARGE("L");
private Size(String abbreviation){this.abbreviation=abbreviation;}
public String getAbbreviation(){
return abbreviation;
}
private String abbreviation;
}
作为Enum的子类,这些枚举类型继承了Enum的许多方法,
1.最有用的是toString方法,这个方法能够返回枚举常量名。
Size.SMALL.toString() //返回字符串"SMALL".
2.toString的逆方法是静态方法valueOf:
Size s = (Size) Enum.valueOf(Size.class,"SMALL");//把s设置为Size.SMALL
3.vlaues方法,将返回一个包含全部枚举值的数组:
Size[] values = Size.values();
4.ordinal方法,返回enum声明中枚举常量的位置,从0开始计数:
Size.,MEDIUM.ordinal() //返回1
import java.util.Scanner;
public class EnumTest{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("输入一个尺码:");
String input = in.next().toUpperCase();
Size s = Enum.valueOf(Size.class, input);//把s设置为Size.SMALL
System.out.println("size="+ s);
System.out.println("缩写是:"+s.getAbbreviation());
if(s == Size.LARGE) {
System.out.println("你丫太胖了");
}
}
}
enum Size{
SMALL("S"),MEDIUM("M"),LARGE("L");
private Size(String abbreviation) {
this.abbreviation = abbreviation;
}
public String getAbbreviation() {
return abbreviation;
}
private String abbreviation;
}