java枚举

来源:互联网 发布:mpls支持的网络协议 编辑:程序博客网 时间:2024/06/02 21:08

枚举:枚举最早的雏(在java5.0前没有引入枚举)是在类里用final来定义常量类(将类自身的构造函数全部私有,然后对外提供常量类的调用),例如:

class EnumDemo{public fianl static EnumDemo A= new EnumDemo();public fianl static EnumDemo B= new EnumDemo();public fianl static EnumDemo C= new EnumDemo(); private EnumDemo(){ }}

对外调用时EnumDemo.AEnumDemo.B


以上是没有引入枚举时使用枚举的方法,现在引入枚举可以直接写:

enum EnumDemo{A,B,C;}

相当于上面的代码。



带字段、方法、构造函数的枚举:

enum EnumDemo{A("a"),B("b"),C("c");private String value;private EnumDemo(Sring str){this.value=str;}public String getValue(){return this.value;}}

带抽象方法:

package com.summer.day1;public enum EnumDemo {A("a"){@Overridepublic String getLocalValue() {// TODO Auto-generated method stubreturn "优秀";}},B("b") {@Overridepublic String getLocalValue() {// TODO Auto-generated method stubreturn "良好";}},C("c") {@Overridepublic String getLocalValue() {// TODO Auto-generated method stubreturn "一般";}};private String value;private EnumDemo(String str){this.value=str;}public String getValue(){return this.value;}public abstract String getLocalValue();}

注意:要在枚举时覆写抽象方法,否则会报错。


总结:

  1. 枚举类中的每一个枚举值都是枚举类的一个实例对象。
  2. 枚举的构造方法必须private
  3. 枚举类也可以实现接口,继承抽象类。
  4. 若枚举只有一个枚举值,可以当做单态设计模式使用。
  5. Java中所有的枚举类都继承了java.lang.Enum。常用的方法name(),ordinal()(枚举从0开始计数),valueofclassstring)(用来检验表单提交的值是不是枚举允许的)、values()(在开发文档里查询不到,一般用来遍历枚举)

 

0 0
原创粉丝点击