Java基础之枚举

标签: java基础
6人阅读 评论(0) 收藏 举报
分类:

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基础(一)妙用枚举类

JDK1.5以后,Java中多了一个Enum关键字,用来定义枚举类型。而在JDK1.5之前,人们都是手动来创建枚举。 首先,我们要知道什么是枚举? 顾名思义,枚举,就是将所需要的一个一个列出来。在...
  • liu765023051
  • liu765023051
  • 2015-07-28 10:08:35
  • 4621

java8 枚举

枚举的使用
  • WangPing1223
  • WangPing1223
  • 2017-08-07 11:52:17
  • 519

java 基础总结 -- enum 枚举的基础使用

package com.zghw.base.enumx; /** * 枚举类型定义 * @author zghw * */ //使用enum关键字定义一个枚举 public enum Spi...
  • zghwaicsdn
  • zghwaicsdn
  • 2016-02-10 04:03:39
  • 959

JavaSE基础之枚举的使用

枚举类概述 在某些情况下,一个类的对象是有限而且固定的。例如季节类,只能有 4 个对象 手动实现枚举类: private 修饰构造器属性使用 private final 修饰把该...
  • yuchao2015
  • yuchao2015
  • 2017-03-20 20:24:43
  • 178

JAVA基础-反射-枚举

  • 2016年02月19日 11:59
  • 28KB
  • 下载

java 枚举学习心得

  • 2011年08月19日 23:32
  • 41KB
  • 下载

算法基础(1)-枚举

枚举在大家看来可能是一个非常简单的问题,不就是一个遍历算法嘛,有什么好说的,然而,在参加了北京大学MOOC的算法基础后,我直接被震惊了。原来枚举算法还能这么玩!好吧,不说有的没得没得了,先来看第一个例...
  • github_29370025
  • github_29370025
  • 2015-07-21 16:01:30
  • 475

基本数据类型之枚举型

枚举型是一种整数型,用户通过以下语法定义:enum   typename     {enumerator-list}; enum是c++的关键字,typename是所定义类型的名字,enumerato...
  • dragon_horse
  • dragon_horse
  • 2009-12-11 10:47:00
  • 3114

C#基础枚举类型

12.1    枚举类型 枚举类型基实就是一些常量和一个实例字段。 强类型,枚举之间进行不能隐式转换 枚举类型直接派生于System.Enum,后者派生于System.ValueTy...
  • Root915
  • Root915
  • 2017-04-27 18:45:19
  • 470

枚举类型的映射

实体类: public class Persion {      private int id;     private String name;     private Gender ...
  • sprita1
  • sprita1
  • 2012-04-11 19:03:55
  • 859
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 2702
    积分: 336
    排名: 23万+
    博客专栏