package javaee.china.cxp;
import org.junit.Test;
/**
 * 枚举的作用:一些程序在运行时,它需要的数据不能是任意的,而必须是一定范围的值,jdk5以前采用自定义类来解决,
 * jdk5以后可以直接采用枚举解决
 * jdk5 新增的enum关键字用于定义一个枚举类
 * 一个枚举也可以有构造函数、字段和方法
 */
public class Demo_7_emur {
 
 @Test
 public void test_6(){
  print(Grade.A);
  print2(Grade2.A);
 }
 
 public void print(Grade G){
  
 }
 
 public void print2(Grade2 G){
  
 }
 
 /**
  *现在用emur枚举来代替下方法
  */
 enum Grade2{
  
  A,B,C,D,E;
  
 }
 
 
}
/**
 *jdk5以前采用自定义类来解决
 *将Grade 构造函数私有化
 *提供共有静态构造函数
 */
class Grade{
 
 private Grade(){}
 
 public static final Grade A = new Grade(); 
 
 public static final Grade B = new Grade(); 
 
 public static final Grade C = new Grade(); 
 
 public static final Grade D = new Grade(); 
 
 public static final Grade E = new Grade(); 
 
}