Java基础之枚举

java中枚举有六种用法:

第一种:定义常量:

  1. public enum Color {  
  2.   RED, GREEN, BLANK, YELLOW  
  3. }  

第二种:用于switch的方法:

enum Signal {      GREEN, YELLOW, RED  }  public class TrafficLight {      Signal color = Signal.RED;      public void change() {          switch (color) {          case RED:              color = Signal.GREEN;              break;          case YELLOW:              color = Signal.RED;              break;          case GREEN:              color = Signal.YELLOW;              break;          }      }  }  

第三种:向枚举中添加新方法

  1. public enum Color {  
  2.     RED("红色"1), GREEN("绿色"2), BLANK("白色"3), YELLO("黄色"4);  
  3.     // 成员变量  
  4.     private String name;  
  5.     private int index;  
  6.     // 构造方法  
  7.     private Color(String name, int index) {  
  8.         this.name = name;  
  9.         this.index = index;  
  10.     }  
  11.     // 普通方法  
  12.     public static String getName(int index) {  
  13.         for (Color c : Color.values()) {  
  14.             if (c.getIndex() == index) {  
  15.                 return c.name;  
  16.             }  
  17.         }  
  18.         return null;  
  19.     }  
  20.     // get set 方法  
  21.     public String getName() {  
  22.         return name;  
  23.     }  
  24.     public void setName(String name) {  
  25.         this.name = name;  
  26.     }  
  27.     public int getIndex() {  
  28.         return index;  
  29.     }  
  30.     public void setIndex(int index) {  
  31.         this.index = index;  
  32.     }  
  33. }  


第四种:覆盖枚举的方法

  1. public enum Color {  
  2.     RED("红色"1), GREEN("绿色"2), BLANK("白色"3), YELLO("黄色"4);  
  3.     // 成员变量  
  4.     private String name;  
  5.     private int index;  
  6.     // 构造方法  
  7.     private Color(String name, int index) {  
  8.         this.name = name;  
  9.         this.index = index;  
  10.     }  
  11.     //覆盖方法  
  12.     @Override  
  13.     public String toString() {  
  14.         return this.index+"_"+this.name;  
  15.     }  
  16. }  

第五种:实现接口:

  1. public interface Behaviour {  
  2.     void print();  
  3.     String getInfo();  
  4. }  
  5. public enum Color implements Behaviour{  
  6.     RED("红色"1), GREEN("绿色"2), BLANK("白色"3), YELLO("黄色"4);  
  7.     // 成员变量  
  8.     private String name;  
  9.     private int index;  
  10.     // 构造方法  
  11.     private Color(String name, int index) {  
  12.         this.name = name;  
  13.         this.index = index;  
  14.     }  
  15. //接口方法  
  16.     @Override  
  17.     public String getInfo() {  
  18.         return this.name;  
  19.     }  
  20.     //接口方法  
  21.     @Override  
  22.     public void print() {  
  23.         System.out.println(this.index+":"+this.name);  
  24.     }  
  25. }  

第六种:使用接口组织枚举

  1. public interface Food {  
  2.     enum Coffee implements Food{  
  3.         BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO  
  4.     }  
  5.     enum Dessert implements Food{  
  6.         FRUIT, CAKE, GELATO  
  7.     }  
  8. }  



  1. /** 
  2.  * 测试继承接口的枚举的使用(by 大师兄 or 大湿胸。) 
  3.  */  
  4. private static void testImplementsInterface() {  
  5.     for (Food.DessertEnum dessertEnum : Food.DessertEnum.values()) {  
  6.         System.out.print(dessertEnum + "  ");  
  7.     }  
  8.     System.out.println();  
  9.     //我这地方这么写,是因为我在自己测试的时候,把这个coffee单独到一个文件去实现那个food接口,而不是在那个接口的内部。  
  10.     for (CoffeeEnum coffee : CoffeeEnum.values()) {  
  11.         System.out.print(coffee + "  ");  
  12.     }  
  13.     System.out.println();  
  14.     //搞个实现接口,来组织枚举,简单讲,就是分类吧。如果大量使用枚举的话,这么干,在写代码的时候,就很方便调用啦。  
  15.     //还有就是个“多态”的功能吧,  
  16.     Food food = Food.DessertEnum.CAKE;  
  17.     System.out.println(food);  
  18.     food = CoffeeEnum.BLACK_COFFEE;  
  19.     System.out.println(food);  
  20. }  

阅读更多
文章标签: java基础
个人分类: Java基础
上一篇springBoot+mybatis plus的架构开发(精华)
下一篇springBoot中添加log4j日志
想对作者说点什么? 我来说一句

JAVA基础-反射-枚举

2016年02月19日 28KB 下载

java 枚举学习心得

2011年08月19日 41KB 下载

java8 枚举

枚举的使用

WangPing1223 WangPing1223

2017-08-07 11:52:17

阅读数:757

java期末考试题 很基础的题目

2009年12月20日 185KB 下载

没有更多推荐了,返回首页

关闭
关闭