枚举类型的由来和用法

一 ,为什么要使用枚举

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
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值