文章目录
- 一 ,为什么要使用枚举
- 1.1 看程序这里的程序有什么不足之处
- 结论:
- 二 枚举的定义和用法
- 2.1 枚举的定义
- 2.2 枚举的用法
- 三,switch 支持枚举类型么?
- 3.1 switch 支持枚举类型
- 3.2 既然switch可以使用String类型的,在考虑switch使用枚举类型的时候可以使用String类型的来代替,而枚举类型使用在别的地方
- 枚举总结:
一 ,为什么要使用枚举
1.1 看程序这里的程序有什么不足之处
public class EnumTest01 {
/**
*以下程序,计算两个数据的商,计算成功返回1失败防护返回
* @param a int 类型的数据
* @param b int类型的数据
* @return 返回1比表示计算成功,返回表示计算失败
*/
public static int divide(int a,int b){
try {
int c=a/b;
return 0;
//程序执行到这里表示执行成功没有发生异常返回1
}catch (Exception e){
//程序执行到这里表示程序发生了异常执行失败
return 1;
}
}
结论:
这里的返回值并没有什么特殊的意义,如果返回值数学错误,编译器并不能直接检查出来,如果程序的结果较多,返回值就显得很无力,其实这里应该返回的是Boolean类型的数据更合理,就如我们所说,如果程序的可能性较多,Boolean就无法满足返回结果,运用枚举类型,可以完全弥补了这一状况
二 枚举的定义和用法
2.1 枚举的定义
//枚举 :一枚一枚可以列出来的,每一种情况有不同的结果
//枚举之后也生成class文件
//枚举也是一种引用数据类型
//枚举中每一个值,都可以看成一种常量
//
enum Result{
SUCESS,FAIL
//枚举里面的定义的数据就是这种的这里定义了两个数据
//SUCCESS和FAIL
}
2.2 枚举的用法
修改原程序,返回一个枚举类型的数据
public static Result divide(int a,int b){
try {
int c=a/b;
return Result.SUCESS;
//程序执行到这里表示执行成功没有发生异常返回1
}catch (Exception e){
//程序执行到这里表示程序发生了异常执行失败
return Result.FAIL;
}
}
修改后的:我们直接返回枚举类型的数据,
三,switch 支持枚举类型么?
3.1 switch 支持枚举类型
介绍:低版本JDK只支持int 类型的数据,但是一般的高版本的,我们使用的JDK都支持String类型的,int类型,枚举类型的数据
例子:
public static void main(String[] args){
Result result=divide(5,2);
switch (result){
case FAIL:{
System.out.println("失败");
}
case SUCESS:{
System.out.println("成功");
}
}
}//main over
3.2 既然switch可以使用String类型的,在考虑switch使用枚举类型的时候可以使用String类型的来代替,而枚举类型使用在别的地方
这里修改了方法的返回值,返回值是Stringle类型的
当然,既然支持String类型,char byte short 都可以支持,存在自动转换
public static String divide(int a,int b){
try {
int c=a/b;
return "成功";
//程序执行到这里表示执行成功没有发生异常返回1
}catch (Exception e){
//程序执行到这里表示程序发生了异常执行失败
return "失败";
}
}
public static void main(String[] args){
String result=divide(5,2);
switch (result){
case "失败":{
System.out.println("失败");
}
case "成功":{
System.out.println("成功");
}
}
}//main over
枚举总结:
总结:枚举用于多种返回值情况下状况,当只有两种情况下的建议直接使用Boolean类型
的数据,当使用枚举类型的时候,返回值比如,四季,颜色,…等种情况的类型加以区分
enum Color{
enum Color{
YELLOW,BLACK,RED,GREEN
}