欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java中枚举enum

程序员文章站 2022-06-17 09:07:13
...

1. enum用于常量 

Java代码  java中枚举enum
            
    
    博客分类: java java 
  1. 在JDK1.5之前可以使用public static final来定义常量,现在可以使用enum,而且枚举提供了比常量更多的方法。  
  2. public enum Color{  
  3.     Red, White, Blue, Black  
  4. }  
  5. public class ColorTest{  
  6.     public static void main(String[] args){  
  7.         Color myColor = Color.Blue;  
  8.         System.out.println(myColor);  
  9.         System.out.println("----------------");  
  10.         for(Color color : Color.values()){  
  11.             System.out.println(color);  
  12.         }  
  13.     }  
  14. }  
  15. 运行结果:  
  16. Blue  
  17. ----------------  
  18. Red  
  19. White  
  20. Blue  
  21. Black  



2. enum使用switch 

Java代码  java中枚举enum
            
    
    博客分类: java java 
  1. enum使用switch,可以提高代码的可读性。  
  2. public class EnumTest{  
  3.     public static void doOp(OpConstant opConstant){  
  4.         switch (opConstant){  
  5.         case TURN_LEFT:  
  6.             System.out.println("向左转");  
  7.             break;  
  8.         case TURN_RIGHT:  
  9.             System.out.println("向右转");  
  10.             break;  
  11.         case SHOOT:  
  12.             System.out.println("射击");  
  13.             break;  
  14.         }  
  15.     }  
  16.     public static void main(String[] args){  
  17.         doOp(OpConstant.TURN_LEFT);  
  18.     }      
  19. }  
  20. enum OpConstant{  
  21.     TURN_LEFT, TURN_RIGHT, SHOOT  
  22. }  
  23. 运行结果:  
  24. 向左转  



3. enum中添加新方法 

Java代码  java中枚举enum
            
    
    博客分类: java java 
  1. 要想使用penny("hello"), nickel("world");样式的枚举,就要实现  
  2. 1) value属性  
  3. 2) value属性的构造方法  
  4. 3) getValue()方法  
  5. public enum Coin{  
  6.     penny("hello"), nickel("world"), dime("welcome"), quarter("hello world");  
  7.     private String value;  
  8.     public String getValue(){  
  9.         return value;  
  10.         }  
  11.     Coin(String value){  
  12.         this.value = value;  
  13.     }  
  14.     public static void main(String[] args){  
  15.         Coin coin = Coin.quarter;  
  16.         System.out.println(coin.getValue());  
  17.     }  
  18. }  
  19. public class ShowEnum{  
  20.     public static void main(String[] args){  
  21.         enumCompareTo(OpConstant.valueOf(args[0]));  
  22.     }  
  23.     public static void enumCompareTo(OpConstant constant){  
  24.         System.out.println(constant);  
  25.         for(OpConstant c : OpConstant.values()){  
  26.             System.out.println(constant.compareTo(c));  
  27.         }  
  28.     }  
  29. }  
  30. 运行输入参数:  
  31. TURN_RIGHT  
  32. 运行结果:  
  33. TURN_RIGHT  
  34. 1  
  35. 0  
  36. -1  
  37.   
  38. values()方法  
  39. ordinal()方法返回顺序  
  40. public class ShowEnum2{  
  41.     public static void main(String[] args){  
  42.         for(OpConstant c : OpConstant.values()){  
  43.             System.out.printf("%d, %s, %n", c.ordinal(), c);  
  44.         }  
  45.     }  
  46. }  
  47. 运行结果:  
  48. 0, TURN_LEFT,   
  49. 1, TURN_RIGHT,   
  50. 2, SHOOT,  



4. enumSet示例 

Java代码  java中枚举enum
            
    
    博客分类: java java 
  1. 1. EnumSet的of()方法和complementOf()方法  
  2.   
  3. import java.util.EnumSet;  
  4. import java.util.Iterator;  
  5. enum FontConstant{  
  6.     Plain, Bold, Italilc, Hello  
  7. }  
  8. public class EnumSetDemo{  
  9.     public static void main(String[] args){  
  10.         EnumSet<FontConstant> enumSet = EnumSet.of(FontConstant.Plain);  
  11.         showEnumSet(enumSet);  
  12.         System.out.println("-------");  
  13.         showEnumSet(EnumSet.complementOf(enumSet));  
  14.     }  
  15.     public static void showEnumSet(EnumSet<FontConstant> enumSet) {  
  16.         for(Iterator<FontConstant> iter = enumSet.iterator(); iter.hasNext();){  
  17.             System.out.println(iter.next());  
  18.         }  
  19.     }  
  20. }  
  21. 运行结果:  
  22. Plain  
  23. -------  
  24. Bold  
  25. Italilc  
  26. Hello  
  27.   
  28. 2. EnumSet的noneOf()方法  
  29.   
  30. import java.util.EnumSet;  
  31. import java.util.Iterator;  
  32. public class EnumSetDemo2{  
  33.     public static void main(String[] args){  
  34.         EnumSet<FontConstant> enumSet = EnumSet.noneOf(FontConstant.class);  
  35.         enumSet.add(FontConstant.Bold);  
  36.         enumSet.add(FontConstant.Italilc);  
  37.         showEnumSet(enumSet);  
  38.     }  
  39.     public static void showEnumSet(EnumSet<FontConstant> enumSet){  
  40.         for(Iterator<FontConstant> iter = enumSet.iterator(); iter.hasNext();){  
  41.             System.out.println(iter.next());  
  42.         }  
  43.     }  
  44. }  
  45. 运行结果:  
  46. Bold  
  47. Italilc  
  48.   
  49. 3. EnumSet的copyOf()方法  
  50.   
  51. import java.util.ArrayList;  
  52. import java.util.EnumSet;  
  53. import java.util.Iterator;  
  54. import java.util.List;  
  55. public class EnumSetDemo3{  
  56.     public static void main(String[] args){  
  57.         List<FontConstant> list = new ArrayList<FontConstant>();  
  58.         list.add(FontConstant.Bold);  
  59.         list.add(FontConstant.Italilc);  
  60.         list.add(FontConstant.Plain);  
  61.         showEnumSet(EnumSet.copyOf(list));  
  62.     }  
  63.     public static void showEnumSet(EnumSet<FontConstant> enumSet){  
  64.         for(Iterator<FontConstant> iter = enumSet.iterator(); iter.hasNext();){  
  65.             System.out.println(iter.next());  
  66.         }  
  67.     }  
  68. }  
  69. 运行结果:  
  70. Plain  
  71. Bold  
  72. Italilc  



5. enumMap示例 

Java代码  java中枚举enum
            
    
    博客分类: java java 
  1. 遍历的顺序和枚举的顺序一致。  
  2.   
  3. import java.util.EnumMap;  
  4. import java.util.Map;  
  5. public class EnumMapDemo{  
  6.     public static void main(String[] args){  
  7.         Map<Action, String> map = new EnumMap<Action, String>(Action.class);  
  8.         map.put(Action.TURN_RIGHT, "向右转");  
  9.         map.put(Action.SHOOT, "射击");  
  10.         map.put(Action.TURN_LEFT, "向左转");  
  11.         for (Action action : Action.values()){  
  12.             System.out.println(map.get(action));  
  13.         }  
  14.     }  
  15. }  
  16. enum Action{  
  17.     TURN_LEFT, TURN_RIGHT, SHOOT;  
  18. }  
  19. 运行结果:  
  20. 向左转  
  21. 向右转  
  22. 射击  



6. enum应用 

Java代码  java中枚举enum
            
    
    博客分类: java java 
  1. 枚举实际应用:控制权限。  
  2.   
  3. public enum AccessRight{  
  4.     MANAGER, DEPARTMENT, EMPLOYEE;  
  5. }  
  6. public class AccessControl{  
  7.     public static boolean checkRight(AccessRight accessRight){  
  8.         if(accessRight == AccessRight.MANAGER){  
  9.             return true;  
  10.         }  
  11.         else if(accessRight == AccessRight.DEPARTMENT){  
  12.             return false;  
  13.         }  
  14.         return false;  
  15.     }  
  16.     public static void main(String[] args){  
  17.         AccessRight accessRight = AccessRight.valueOf("MANAGER");  
  18.         System.out.println(checkRight(accessRight));  
  19.     }  
  20. }  
  21. 运行结果:  
  22. true  

 

 

 

本文转自:http://andrew7676.iteye.com/blog/2432209

相关标签: java