java枚举

目录

1:什么是枚举

2:枚举的用法

2.1:final和枚举类

2.2:测试方法


1:什么是枚举

枚举是一个帖特殊的类,用来表示一组常量。Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。

2:枚举的用法

枚举和final的比较。final可以重新赋值(重新引用)。枚举不行,枚举可以表示结构化的数据,代码少,利于管理。

2.1:final和枚举类

//1:final修饰
public class Colar {
    static final String red="red";
    static  String bule="blue";
}
//2:枚举
public enum  Enum1 {
    red,greeen,bule,aa;
}
//2.1:内部枚举类
public class Enum2 {
    enum Enum22{
        red,green,blue;
    }
}
//2.3:复杂类型枚举
public enum Enum3 {

    red(1, "1红色"), blue(2, "2蓝色"), green(3, "3绿色");

    // 成员变量
    private int index;//索引
    private String name;//颜色

    Enum3(int index, String name) {
        this.index = index;
        this.name = name;
    }

    //根据索引获取name
    public static String getEnum(int index) {

        for (Enum3 e : Enum3.values()) {

            if (e.index == index) {
                return e.getName();
            }
        }
        return "输入枚举索引不存在";
    }


    public int getIndex() {
        return index;
    }

    public void setIndex(int index) {
        this.index = index;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

2.2:测试方法

/**
     * 以前的final修饰
     * static final String red="red";
     */
    @Test
    public void t0() {
        //以前的写法 final的静态常量
        Colar.bule = "bule";
        String bule = Colar.bule;
        //final 修饰red 可以重新赋值
        String red = Colar.red;
        red="da";//red 重新赋值
        System.out.println(bule);
        System.out.println(red);

    }

    /**
     * 不使用final
     * Enum1枚举基础用法
     */
    @Test
    public void t1() {
        Enum1 color = Enum1.red;
        System.out.println(color);

        //String a=Enum1.red;//禁止赋值 修改

        System.out.println(Enum1.bule.toString());//转换为字符串
        System.out.println(Enum1.greeen);//直接输出
        System.out.println(Enum1.valueOf("red"));
    }

    /**
     * Enum2枚举声明在内部类中
     */
    @Test
    public void t2() {
        Enum2.Enum22 enum22 = Enum2.Enum22.blue;
        System.out.println(enum22.blue.toString());//转换为string
        System.out.println(Enum2.Enum22.valueOf("green"));
        System.out.println(Enum2.Enum22.red);
    }


    /**
     * Enum1
     * for语句迭代枚举
     */
    @Test
    public void t3() {
        for (Enum1 value : Enum1.values()) {
            System.out.println("枚举的值:" + value);
            System.out.println("枚举索引:" + value.ordinal());
        }
    }

    /**
     * Enum1
     * switch语句迭代枚举
     */
    @Test
    public void t4() {
        Enum1 enum1 = Enum1.greeen;
        switch (enum1) {
            case red:
                System.out.println("红色");
                break;
            case greeen:
                System.out.println("绿色");
                break;
            case bule:
                System.out.println("蓝色");
                break;
            default:
                System.out.println("原色不正确");


        }
    }


    /**
     * Enum3
     * 枚举包含信息更多
     * for语句迭代枚举
     */
    @Test
    public void t5() {
        String a = Enum3.getEnum(4);
        System.out.println(a);
    }



    /**
     * switch
     */
    @Test
    public void swich1() {
        int a = 3;
        switch (a) {
            case 10:
                System.out.println("10");
                break;
            case 20:
                System.out.println("20");
                break;
            default:
                System.out.println("无效输入");


        }
    }

    /**
     * switch
     * 不加break
     * 会在满足条件之后 剩下的全部输出
     * <p>
     * 郑州2
     * 郑州3
     * 输入不合规范
     */
    @Test
    public void swich3() {
        String a = "郑州2";
        switch (a) {
            case "郑州1":
                System.out.println("郑州1");
            case "郑州2":
                System.out.println("郑州2");
            case "郑州3":
                System.out.println("郑州3");
            default:
                System.out.println("输入不合规范");
        }

    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值