全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java枚举使用详细介绍及实现

java枚举使用详解

在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。

例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集”。

在java中如何更好的使用这些“数据集”呢?因此枚举便派上了用场,以下代码详细介绍了枚举的用法。

package com.ljq.test;

/**
 * 枚举用法详解
 * 
 * @author jiqinlin
 * 
 */
public class TestEnum {
  /**
   * 普通枚举
   * 
   * @author jiqinlin
   *
   */
  public enum ColorEnum {
    red, green, yellow, blue;
  }
  
  /**
   * 枚举像普通的类一样可以添加属性和方法,可以为它添加静态和非静态的属性或方法
   * 
   * @author jiqinlin
   *
   */
  public enum SeasonEnum {
    //注:枚举写在最前面,否则编译出错
    spring, summer, autumn, winter;

    private final static String position = "test";

    public static SeasonEnum getSeason() {
      if ("test".equals(position))
        return spring;
      else
        return winter;
    }
  }
  
  /**
   * 性别
   * 
   * 实现带有构造器的枚举
   * 
   * @author jiqinlin
   *
   */
  public enum Gender{
    //通过括号赋值,而且必须带有一个参构造器和一个属性跟方法,否则编译出错
    //赋值必须都赋值或都不赋值,不能一部分赋值一部分不赋值;如果不赋值则不能写构造器,赋值编译也出错
    MAN("MAN"), WOMEN("WOMEN");
    
    private final String value;

    //构造器默认也只能是private, 从而保证构造函数只能在内部使用
    Gender(String value) {
      this.value = value;
    }
    
    public String getValue() {
      return value;
    }
  }
  
  /**
  * 订单状态
  * 
  * 实现带有抽象方法的枚举
  * 
  * @author jiqinlin
  *
  */
  public enum OrderState {
    /** 已取消 */
    CANCEL {public String getName(){return "已取消";}},
    /** 待审核 */
    WAITCONFIRM {public String getName(){return "待审核";}},
    /** 等待付款 */
    WAITPAYMENT {public String getName(){return "等待付款";}},
    /** 正在配货 */
    ADMEASUREPRODUCT {public String getName(){return "正在配货";}},
    /** 等待发货 */
    WAITDELIVER {public String getName(){return "等待发货";}},
    /** 已发货 */
    DELIVERED {public String getName(){return "已发货";}},
    /** 已收货 */
    RECEIVED {public String getName(){return "已收货";}};
    
    public abstract String getName();
  }
  
  public static void main(String[] args) {
    //枚举是一种类型,用于定义变量,以限制变量的赋值;赋值时通过“枚举名.值”取得枚举中的值
    ColorEnum colorEnum = ColorEnum.blue;
    switch (colorEnum) {
    case red:
      System.out.println("color is red");
      break;
    case green:
      System.out.println("color is green");
      break;
    case yellow:
      System.out.println("color is yellow");
      break;
    case blue:
      System.out.println("color is blue");
      break;
    }
    
    //遍历枚举
    System.out.println("遍历ColorEnum枚举中的值");
    for(ColorEnum color : ColorEnum.values()){
      System.out.println(color);
    }
    
    //获取枚举的个数
    System.out.println("ColorEnum枚举中的值有"+ColorEnum.values().length+"个");
    
    //获取枚举的索引位置,默认从0开始
    System.out.println(ColorEnum.red.ordinal());//0
    System.out.println(ColorEnum.green.ordinal());//1
    System.out.println(ColorEnum.yellow.ordinal());//2
    System.out.println(ColorEnum.blue.ordinal());//3
    
    //枚举默认实现了java.lang.Comparable接口
    System.out.println(ColorEnum.red.compareTo(ColorEnum.green));//-1
    
    //--------------------------
    System.out.println("===========");
    System.err.println("季节为" + SeasonEnum.getSeason());
    
    
    //--------------
    System.out.println("===========");
    for(Gender gender : Gender.values()){
      System.out.println(gender.value);
    }
    
    //--------------
    System.out.println("===========");
    for(OrderState order : OrderState.values()){
      System.out.println(order.getName());
    }
  }
  
}


# java枚举使用详解  # java  # 枚举  # Java实现转跳不同系统使用枚举加switch的方式示例  # 扒一扒 Java 中的枚举类型  # java编程枚举类型那些事!枚举类型定义和重写枚举的方法  # Java枚举使用方法详解  # java 中枚举类enum的values()方法的详解  # Java枚举的使用方法详解  # JAVA 枚举单例模式及源码分析的实例详解  # java枚举类的构造函数实例详解  # Java枚举类型enum的详解及使用  # Java中对于双属性枚举的使用案例  # 遍历  # 收货  # 配货  # 是一种  # 都不  # 上了  # 详细介绍  # 一到  # 春夏秋冬  # 写在  # 最前面  # 星期日  # 实现了  # 只能在  # 在实际  # blue  # spring  # SeasonEnum  # static  # final 


相关文章: 国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  公众号网站制作网页,微信公众号怎么制作?  建站主机与服务器功能差异如何区分?  如何解决VPS建站LNMP环境配置常见问题?  如何批量查询域名的建站时间记录?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  javascript基本数据类型及类型检测常用方法小结  建站之星如何取消后台验证码生成?  宝塔新建站点报错如何解决?  重庆网站制作公司哪家好,重庆中考招生办官方网站?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  家具网站制作软件,家具厂怎么跑业务?  如何通过虚拟主机快速搭建个人网站?  如何通过可视化优化提升建站效果?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  建站之星安装提示数据库无法连接如何解决?  如何选择可靠的免备案建站服务器?  建站之星Pro快速搭建教程:模板选择与功能配置指南  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  ,石家庄四十八中学官网?  中山网站推广排名,中山信息港登录入口?  大型企业网站制作流程,做网站需要注册公司吗?  已有域名和空间,如何快速搭建网站?  代刷网站制作软件,别人代刷火车票靠谱吗?  山东云建站价格为何差异显著?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  开封网站制作公司,网络用语开封是什么意思?  如何快速重置建站主机并恢复默认配置?  网站设计制作企业有哪些,抖音官网主页怎么设置?  建站之星价格显示格式升级,你的预算足够吗?  如何快速辨别茅台真假?关键步骤解析  建站VPS能否同时实现高效与安全翻墙?  如何快速选择适合个人网站的云服务器配置?  如何选择美橙互联多站合一建站方案?  长沙企业网站制作哪家好,长沙水业集团官方网站?  如何快速配置高效服务器建站软件?  名字制作网站免费,所有小说网站的名字?  如何在局域网内绑定自建网站域名?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  建站之星代理平台如何选择最佳方案?  如何在建站主机中优化服务器配置?  建站之星展会模版如何一键下载生成?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  建站之星展会模板:智能建站与自助搭建高效解决方案  如何通过虚拟主机空间快速建站?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。