枚举类型

以往设置常量,通常将常量放在接口当中,这样就可以在程序中被使用,这种常量不可以修改,因为修饰符是final,代码如下

public interface ConStants{
    public static final int Constants_A=1;
    public static final int Constants_B=21;
}

定义枚举类型的关键字:enum

   compareTo():调用方法compareTo()方法返回的结果,正值代表方法中的参数在调用该方法的枚举对象位置之前;0代表两个互相比较的枚举成员的位置相同。负值代表方法中参数的位置在调用该方法的枚举变量之后。

  ordinal:获取索引。

 

 

枚举类型中的构造方法:在枚举类型中可以增加构造方法,但是构造方法的修饰符必须是private

源码如下:

import static java.lang.System.out;
public class TestEnum {
    enum Constants{
        Constants_A("我是枚举成员A"),//构造函数 TestEnum.Constants2(String)未定义
        Constants_B("我是枚举成员B"),
        Constants_C("我是枚举成员C"),
        Constants_D(3);
        private String description;
        private int i=4;
        private Constants() {
            
        }
        //定义参数为String型的构造方法
        private Constants(String description) {
            this.description=description;
        }
        private Constants(int i) {
            this.i=this.i+i;
        }
        public String getDescription() {
            return description;
        }
        public int getI() {
            return i;
        }
        
    }
    public static void main(String[] args) {
        for(int i=0;i<Constants.values().length;i++) {
            out.println(Constants.values()[i]+"调用getDescription方法为:"
        +Constants.values()[i].getDescription());
        }
        out.println(Constants.valueOf("Constants_D")+"调用getI()方法为:"
        +Constants.valueOf("Constants_D").getI());
    }
}

除了以上方法,还可以将这个getDescription()方法放置在接口中,使枚举类型实现该接口,然后使每个枚举类型实现带方法的接口,使每个枚举类型成员实现该接口中的方法

枚举类型声明提供了一种用户友好的变量定义方法,枚举了某种数据类型所有可能出现的值,总结以下特点:

  •   类型安全
  •   紧凑有效的数据定义
  •   可以和其他程序完美交互
  •   运行效率高

 

上一篇:Arduino -- variables


下一篇:Java 协程Quasar QUASAR WARNING: Quasar Java Agent isn‘t running