黑马程序员——关于枚举

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流!----------------------

 

一、 枚举的作用和定义枚举

枚举是为了规范数据而定义的,在开发中,有些数据不能是任意的,必须只能是某些值。这个时候就需要用到枚举。

枚举类也是一种特殊的Java类,它声明的每一个枚举值代表枚举类的一个实例对象。它也有普通类一样的声明属性、方法和构造函数,但是枚举类的构造函数必须是私有的,使得外部无法对枚举值进行增加。

另外,如果枚举类只有一个枚举值,则它可以当作单例设计模式使用。

枚举类的用法示例代码如下:

 

enumGrade{//用枚举类可以直接这样写,就可以替代上面的自定义类。

    A,B,C,D,E;//这四个值是枚举对象

}

 

二、 定义枚举的构造函数、方法和字段

enum Grade {//为每个枚举值定义一个参数。

    A("100-90"), B("89-80"), C("79-70"), D("69-60"), E("59-0");

    private String value;

    private Grade(String value){定义有参构造函数

           this.value=value;

    }

    public String getValue(){//返回有参构造函数中传入的参数

           return this.value;

    }

这里Grade.A.getValue()返回的值就是字符串100-90。

 

三、 带抽象方法的枚举

如果需要对枚举的每一个枚举对象自定义一个方法,那么需要将方法定义为抽象的,让每一个枚举对象都实现这个方法。示例代码如下:

enum Grade {// class A 100-90优 B 89-80良C 79-70 一般D 69-60差 E 59-0不及格

//每个枚举对象都要复写localValue()这个方法,每个对象返回一个特定的值。

//这里需要注意,只是在每个枚举对象后面添加这个方法,其余代码不变,特别逗号要记得保留。

A{

  public StringlocalValue(){

        return "优";

  }

},

B{

  public String localValue(){

        return"良";

  }

},

C{

  public String localValue(){

       return "一般";

}

},

D{

   public StringlocalValue(){

        return"差";

}

},

E{

  public String localValue(){

       return "不及格";

}

};

  public abstract String localValue();//定义一个抽象方法,用于实现优良这个等级。

}

这个方法可以通过Grade.X.localValue()获取对应的值。

 

四、 常见方法

1、 name():返回此枚举常量的名称;

2、 ordinal():返回枚举常量的序数

3、  valueof(Stringstr):返回带指定名称的指定枚举类型的枚举常量。

那么什么时候需要把字符串转成枚举?

当处理用户通过表单传过来的值是否是你定义的枚举类中的值时,将字符串转成枚举,看看是否会抛出异常;会的话,则用户传过来的值时非法的。

4、 Grade.values():该方法返回的是枚举中所有的枚举值的数组。此方法是API文档中不存在的。

 

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流!----------------------

 详细请查看:http://edu.csdn.net

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值