ENUM枚举 java枚举的使用

枚举类型是Java 5中新增特性的一部分,它是一种特殊的数据类型。主要作用是列出常量。

不用枚举类型:

public class DayDemo {

    public static final int MONDAY =1;

    public static final int TUESDAY=2;

    public static final int WEDNESDAY=3;

    public static final int THURSDAY=4;

   public static final int FRIDAY=5;

   public static final int SATURDAY=6;

   public static final int SUNDAY=7;

}

上述的常量定义常量的方式称为int枚举模式,这样的定义方式并没有什么错,但它存在许多不足,如在类型安全和使用方便性上并没有多少好处,如果存在定义int值相同的变量,混淆的几率还是很大的,编译器也不会提出任何警告,因此这种方式在枚举出现后并不提倡,现在我们利用枚举类型来重新定义上述的常量,同时也感受一把枚举定义的方式,如下定义周一到周日的常量

enum Day {

  MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY

}

向enum类添加方法与自定义构造函数

重新定义一个日期枚举类,带有desc成员变量描述该日期的对于中文描述,同时定义一个getDesc方法,返回中文描述内容,自定义私有构造函数,在声明枚举实例时传入对应的中文描述,代码如下:

从上述代码可知,在enum类中确实可以像定义常规类一样声明变量或者成员方法。但是我们必须注意到,如果打算在enum类中定义方法,务必在声明完枚举实例后使用分号分开,倘若在枚举实例前定义任何方法,编译器都将会报错,无法编译通过,同时即使自定义了构造函数且enum的定义结束,我们也永远无法手动调用构造函数创建枚举实例,毕竟这事只能由编译器执行。

public enum RespCode {

   /**
    * 0000000 成功
    */
   E_0000("0000000","成功"),
   E_1001("1001","密码修改失败"),
   E_1003("1003","原密码错误"),
   E_1004("1004","该邮箱尚未注册"),
   E_1002("1002","该用户不存在"),



   E_8888("8888","失败");



    public String name;

    public String code;

    private RespCode(String code, String  name) {  
       if(!"0000000".equals(code)){
         code="103"+code;
      }
        this.name = name;  
        this.code = code;  
    }

    @Override
    public String toString() {  
        return this.code+"_"+this.name;  
    }

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }

   public String getCode() {
      return code;
   }

   public void setCode(String code) {
      this.code = code;
   }

   public static void main(String[] args) {
      EnumSet<RespCode> eNums = EnumSet.allOf(RespCode.class);
      for(RespCode r : eNums){
         System.out.println(r.getCode() + "" + r.getName());
      }
   }

}

 

转载于:https://my.oschina.net/zhaolin/blog/1650016

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值