1.什么是枚举?
在数学和计算机科学中,枚举是一个被命名为整型常数的集合,枚举在生活中也很多比如:
星期的表示 : SUNDY、MONDY、TUESTDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY
性别 : FEMALE女、MALE男
简单来说,枚举就是一个集合。当一个类的对象是有限个且个数确定的时候,我们就可以定义一个枚举来存放这些对象。
2.ENUM类
java.lang.Enum类是SUM公司提供的java语言的公共基类,我们使用enum关键字来定义枚举类,我们定义的枚举类是隐式继承Enum类的
3.为什么使用枚举类
package Test01;
public class EnumTest01 {
public static void main(String[] args){
boolean seccess = divide(10,2);
System.out.println(seccess?"程序执行成功":"程序执行失败");
boolean seccess2 = divide(10,0);
System.out.println(seccess2?"程序执行成功":"程序执行失败");
}
//既然最后的结果是boolean类型的数据,那我们就让这个静态方法返回boolean,因为true和false恰好表示了两种不同的状态
public static boolean divide(int a,int b){
try {
int c = a / b;
//程序执行到此处没有发生异常表示程序执行成功,但是返回一个int类型的数据,在设计的时候就不恰当。我们在下面改造一下
return true;
}catch (Exception e){
return false;
}
}
}
4.使用枚举来改造程序
package Test01;
public class EnumTest02 {
public static void main(String[] args){
Result result=divide(10,2);
System.out.println(result == Result.SUCCESS ?"程序运行成功":"程序运行失败" );
}
public static Result divide(int a,int b){
try {
int c = a / b;
return Result.SUCCESS;
}catch (Exception e){
return Result.FALSE;
}
}
}
enum Result{
SUCCESS,FALSE;
}
5.枚举近似于(实际上就是)一个类,这个类里面的所有属性都是常量
public enum Color {
RED,BLUE,YELLOW,BLACK
}
6.枚举在switch选择语句中的使用
switch语句支持枚举类型 switch也支持String、int 低版本的JDK,只支持int 高版本的JDK,支持int、String、枚举。 byte short char也可以,因为存在自动类型转换。
public class SwitchTest {
public static void main(String[] args) {
switch (Season.SPRING) {
case SPRING:
System.out.println("春天");
break;
case SUMMER:
System.out.println("夏天");
break;
case AUTUMN:
System.out.println("秋天");
break;
case WINTER:
System.out.println("冬天");
break;
}
}
}



