以往设置常量,通常将常量放在接口当中,这样就可以在程序中被使用,这种常量不可以修改,因为修饰符是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()方法放置在接口中,使枚举类型实现该接口,然后使每个枚举类型实现带方法的接口,使每个枚举类型成员实现该接口中的方法
枚举类型声明提供了一种用户友好的变量定义方法,枚举了某种数据类型所有可能出现的值,总结以下特点:
- 类型安全
- 紧凑有效的数据定义
- 可以和其他程序完美交互
- 运行效率高