转: 枚举注意点

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;
}
}

posted @ 2010-07-01 10:40  AllenChen  阅读(188)  评论(0编辑  收藏  举报