枚举 —– 用来对一定范围内的值 进行取值
枚举语法 : enum 枚举类名称 { 枚举对象实例,枚举对象实例… ; }
* 可读性良好、阻止非法数据
案例:员工和角色案例 —-枚举技术由来
* 应用 :多个固定取值范围中 取一个值 , 三选一效果
Java数据类型有几种:两大种 引用数据类型 原始数据类型
引用数据类型 :interface class 数组 enum
原始数据类型 :8种
每一个枚举值 在编译.class文件后,成为枚举成员对象(常量)
枚举类构造器 必须private 的
JDK5 switch 可以接受五种数据 类型 byte 、short 、int 、char、enum
JDK7 switch 可以接受六种 : 多了一种String
这是两个枚举类实现星期的转换(注意两种写法的不同)
/**
* 星期输出中文案例
*
* @author seawind
*
*/
public class WeekDayTest {
public static void main(String[] args) {
WeekDay1 day1 = WeekDay1.Fri;
day1.show();
WeekDay2 day2 = WeekDay2.Wed;
day2.show();
}
}
enum WeekDay2 {
Mon {
@Override
public void show() {
System.out.println("星期一");
}
},
Tue {
@Override
public void show() {
System.out.println("星期二");
}
},
Wed {
@Override
public void show() {
System.out.println("星期三");
}
},
Thu {
@Override
public void show() {
System.out.println("星期四");
}
},
Fri {
@Override
public void show() {
System.out.println("星期五");
}
},
Sat {
@Override
public void show() {
System.out.println("星期六");
}
},
Sun {
@Override
public void show() {
System.out.println("星期日");
}
};
public abstract void show();
}
enum WeekDay1 {
Mon, Tue, Wed, Thu, Fri, Sat, Sun;
// 编写方法 show
public void show() {
// 根据枚举对象 名字 返回响应中文星期
if (this.name().equals("Mon")) {
System.out.println("星期一");
} else if (this.name().equals("Tue")) {
System.out.println("星期二");
} else if (this.name().equals("Wed")) {
System.out.println("星期三");
} else if (this.name().equals("Thu")) {
System.out.println("星期四");
} else if (this.name().equals("Fri")) {
System.out.println("星期五");
} else if (this.name().equals("Sat")) {
System.out.println("星期六");
} else if (this.name().equals("Sun")) {
System.out.println("星期日");
}
}
}
枚举类型的一些方法:
//定义的枚举类
public enum Color {
RED,BLACK,BLUE;
}
@Test
public void demo1(){//枚举类型的方法测试
Color color=Color.RED;
System.out.println(color.name());
System.out.println(color.ordinal());
System.out.println("--------------");
String name="BLACK";
Color color2=Enum.valueOf(Color.class, name);
System.out.println(color2.name());
Color[] colorarray=Color.values();
System.out.println(Arrays.toString(colorarray));
Color color3=Color.valueOf("BLUE");
System.out.println(color3.name());
}