枚举(enum)

作用:把各种情况列出来,附加一些信息;结合switch-case更加方便

举例:模拟四种网络状态

未使用枚举的情况

只写数字不知道是什么意思,可以给数字起个名字,让英文单词有意义

public class NetworkStatus {
    public static final int NETWORK_OK = 0;//网络正常
    public static final int NETWORK_LOW_SPEED = 1;//网速过慢
    public static final int NETWORK_HIGH_PING = 2;//网络ping值过高
    public static final int NETWORK_UNSTABLE = 3;//网络不稳定
}
//1.使用静态final属性,模拟C中的宏定义,来进行分类例举
        int netStatus = (int)(Math.random() * 4);

        switch(netStatus){
            //case后的数字可以改为属性,通过值可以看到一些含义
            //只写数字意义容易混淆
            //不便之处:写状态信息冗余,量多时比较麻烦,因此使用枚举替代
            case NetworkStatus.NETWORK_OK:
                System.out.println("网络正常!");
                break;
            case NetworkStatus.NETWORK_LOW_SPEED:
                System.out.println("网速过慢!");
                break;
            case NetworkStatus.NETWORK_HIGH_PING:
                System.out.println("网络ping值过高!");
                break;
            case NetworkStatus.NETWORK_UNSTABLE:
                System.out.println("网络不稳定!");
                break;
        }

使用枚举的情况

//建立枚举(enum关键字)
//可以用于编辑手册,有其他需要的信息和属性可以再加
public enum NetworkCode {
    NETWORK_OK(0,"网络正常"),
    NETWORK_LOW_SPEED(1,"网速过慢"),
    NETWORK_HIGH_PING(2,"网络ping值过高"),
    NETWORK_UNSTABLE(3,"网络不稳定"),
    ;

    private int code;//错误编码
    private String msg;//错误信息

    NetworkCode(int code, String msg){
        this.code = code;
        this.msg = msg;
    }

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}
//导入静态包
import static com.chinasofti.xian.EnumTest.bean.NetworkCode.*;
//2.使用枚举,列出网络的各种状态
//
NetworkCode networkCode = NETWORK_HIGH_PING;

switch(networkCode){
    //可以根据networkCode知道类型
      case NETWORK_OK:
           System.out.println("网络状态编码:" + NETWORK_OK.getCode() + ",错误信息:" + NETWORK_OK.getMsg());
           break;
      case NETWORK_LOW_SPEED:
           System.out.println("网络状态编码:" + NETWORK_LOW_SPEED.getCode() + ",错误信息:" + NETWORK_LOW_SPEED.getMsg());
           break;
      case NETWORK_HIGH_PING:
           System.out.println("网络状态编码:" + NETWORK_HIGH_PING.getCode() + ",错误信息:" + NETWORK_HIGH_PING.getMsg());
           break;
      case NETWORK_UNSTABLE:
           System.out.println("网络状态编码:" + NETWORK_UNSTABLE.getCode() + ",错误信息:" + NETWORK_UNSTABLE.getMsg());
           break;
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值