转: 枚举注意点
package org.mingyuan.ch5.EnumTest;
import java.util.*;
/**
*
* @author mingyuan
*
*/
public class EnumTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
System.out.println("Enter a size:SMALL,MEDIUM,LARGE,EXTRA_LARGE");
String input = in.next().toUpperCase();
Size size = Enum.valueOf(Size.class, input);
System.out.println("size=" + size);
System.out.println("abbreviation=" + size.getAbbrevation());
System.out.println("num="+size.getNum());
if (size == Size.EXTRA_LARGE) {
System.out.println("good job--you paid attention to the _");
}
}
}
enum Size {
/**
* 顺序是先定义枚举值,然后定义域,再定义方法
*/
SMALL("S",1), MEDIUM("M",2), LARGE("L",3), EXTRA_LARGE("XL",4);
/**
* String abbreviation相当于SMALL("S",1)中的S、MEDIUM("M",2)中的M
* int num相当于SMALL("S",1)中的1、MEDIUM("M",2)中的2
*/
private String abbreviation;
private int num;
/**
* 构造函数是必须的,并且必须是两个参数。因为在SMALL("S",1)这个定义枚举值得地方已经有了两个参数
*/
private Size(String abbreviation,int num) {
this.abbreviation = abbreviation;
this.num=num;
}
/**
* 可以存在默认的构造函数,但是带有全部参数的构造函数是不能少的
*/
private Size(){
}
/**
* get方法 取得 abbreviation
* @return abbreviation
*/
public String getAbbrevation() {
return abbreviation;
}
/**
* get方法 取得 num
* @return
*/
public int getNum(){
return num;
}
}