首先创建枚举类型的类对象。
1 package lltse.base.enumdemo; 2 3 public enum LevelEnum 4 { 5 //创建枚举对象,调用有参构造函数实例化 6 PERFECT("优秀") 7 { 8 //实现抽象方法 9 public int getNum() 10 { 11 return 5; 12 } 13 }, 14 GOOD("良好") 15 { 16 //实现抽象方法 17 public int getNum() 18 { 19 return 4; 20 } 21 }, 22 MID("中等") 23 { 24 //实现抽象方法 25 public int getNum() 26 { 27 return 3; 28 } 29 }, 30 PASS("及格") 31 { 32 //实现抽象方法 33 public int getNum() 34 { 35 return 2; 36 } 37 }, 38 NOPASS("不及格") 39 { 40 //实现抽象方法 41 public int getNum() 42 { 43 return 1; 44 } 45 }; 46 47 private String name; 48 49 //枚举无参构造函数 50 private LevelEnum() 51 { 52 } 53 54 //枚举有参构造函数 55 private LevelEnum(String name) 56 { 57 this.name = name; 58 } 59 60 61 public String getName() 62 { 63 return name; 64 } 65 66 //枚举抽象方法定义,要求创建对象的子类都需要实现该方法 67 public abstract int getNum(); 68 }
其次是枚举类型的测试类
1 package lltse.base.enumdemo; 2 3 public class EnumDemo 4 { 5 6 public static void main(String args []) 7 { 8 testEnumLevel(LevelEnum.MID); 9 10 11 //返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。 12 LevelEnum level1 = LevelEnum.PERFECT; 13 System.out.println(""+level1.ordinal()); 14 15 //返回带指定名称的指定枚举类型的枚举常量 16 System.out.println(LevelEnum.valueOf("GOOD").getName()); 17 18 //获取枚举类型的数组 19 LevelEnum [] enums = LevelEnum.values(); 20 for(LevelEnum enum1 : enums) 21 { 22 System.out.println("name:>>>"+enum1.getName()+"num:>>>"+enum1.getNum()); 23 } 24 } 25 26 private static void testEnumLevel(LevelEnum level) 27 { 28 switch(level) 29 { 30 //此处可以使用byte short int char enum 几种数据类型 31 case PERFECT: 32 //此处调用枚举的getName方法获取枚举名称,返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。 33 System.out.println(""+level.getName()+">>>"+level.getNum()+"***"+level.ordinal()); 34 break; 35 case GOOD: 36 System.out.println(""+level.getName()+">>>"+level.getNum()); 37 break; 38 case MID: 39 System.out.println(""+level.getName()+">>>"+level.getNum()+"***"+level.ordinal()); 40 break; 41 case PASS: 42 System.out.println(""+level.getName()+">>>"+level.getNum()); 43 break; 44 case NOPASS: 45 System.out.println(""+level.getName()+">>>"+level.getNum()); 46 break; 47 default: 48 new RuntimeException("non"); 49 } 50 } 51 }
时间: 2024-10-08 10:28:57