java之enum枚举(2015年05月28日)
背景:
今天启动了一个新的项目,由于要从之前的旧项目中拿过来一些代码,所以就看了下公司之前项目代码,发现有定义的常量类,也有枚举类,然后就在想着两者的功能差不多,那他们之间到底有什么区别呢,所以就决定了解下enum枚举
一、简介
Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型。
二、基本用法
1.作为常量使用
一个完整的枚举类型示例
/**
* 枚举
* @author Dreyer
* @since 1.0
* @date 2015-5-28 下午8:16:31
*/
public enum EnumDemo1 {
Small(1),
Medium(2),
Larger(3);
private int code;
private EnumDemo1 (int code) {
this.code = code;
}
//作用相对于下面的toString()方法
public int getCode () {
return this.code;
}
@Override
public String toString() {
return String.valueOf(this.code);
}
}
2.可以用于switch()语句
EnumDemo1 size = EnumDemo1.Small;
public void printInfo() {
switch (size) {
case Small:
System.out.println("the size is small");
break;
case Medium:
System.out.println("the size is medium");
break;
case Larger:
System.out.println("the size is large");
break;
}
}
注意点:
1.枚举类型的构造函数只能是private或者默认的修饰符
2.所有的枚举值都是public static final修饰的,如同我们定义的常量一样
3.枚举中可以定义普通方法
4.枚举还能实现接口
三、Enum和enum的区别
Enum表示一个类,它里面封装了一下方法用于对枚举的基本操作
enum表示一个变量类型,是一种数据类型,它用来定义枚举
四、enum和常量的区别
待更新...
五、附加姿势
因为看公司定义的常量类都是一个class,然后就public static final...
在网上看到接口常量类觉得更不错,因为它是一个接口,所以里面的变量默认就是public static final修饰的