一分钟认识枚举类

1、什么是枚举类?

枚举类(Enumeration Class)是一种数据类型,它包含了一组预定义的常量值。在编程语言中,枚举类通常用于表示一组固定的常量值,使得代码更加清晰和易于理解

枚举类型就是多例,一个类有多个实例,但是实例的个数不是无穷的,是有限的;枚举类中实例称为枚举项,一般一个枚举类不应该有太多的枚举项

2、枚举类有什么优点

  1. 提高代码可读性:使用枚举类可以清楚地表示一组相关的常量,使得代码更加直观易懂。

  2. 防止错误:由于枚举类中的值是预定义的,可以避免在代码中使用错误或不一致的值。

  3. 类型安全:枚举类提供了类型安全,编译器可以在编译时检查枚举值的使用,防止类型错误。

  4. 易于维护:当需要修改或扩展一组常量时,使用枚举类可以集中管理这些值,方便维护。

  5. 用于switch-case语句:在某些编程语言中,枚举类可以与switch-case语句一起使用,提供更清晰的逻辑分支。

  6. 序列化和反序列化:枚举类可以方便地进行序列化和反序列化操作,便于数据的存储和传输。

3、创建枚举类?

假设你在开发一个天气应用,需要表示天气状态。如果不使用枚举类,你可能会用一些数字或者字符串来表示,比如用0表示“晴天”,1表示“多云”,这样虽然也能工作,但很容易出错,比如不小心把0写成了1,或者忘记了具体代表什么天气

就是某些类别不涉及数字,你又想给他们进行编号,

第一种方式是使用数字来进行标识,把原本字符串类型的数据使用整形来对待

第二种方式是使用枚举类来创建若干个枚举,在使用时直接调用该类的枚举就可以标识某一个类别

创建枚举类

//不需要往里进行设置值,所以只需要定义Getter方法
@Getter
public enum StatusEnums {
    //创建枚举
    YES(1,"正常"),
    NO(0,"异常");

    
    private final Integer status;
    private final String desc;

    //生成构造函数,默认是私有的
    StatusEnums(Integer status, String desc) {
        this.status = status;
        this.desc = desc;
    }

}

3.1、注意事项:

当没有定义属性构造函数是无参的,修饰符是私有的,而且只能是private修饰,因为枚举类实例不能让外界来创建,其实创建枚举项就等于调用本类的无参构造器,当定义了属性,创建枚举就相当于调用了有参构造函数

枚举类使用关键字enum ,所有关键字都是小写               

如果类只有唯一的构造器,并且是有参的构造器,那么在创建枚举项时,必须为构造器赋值枚举是大写,括号是所有属性的数据

创建枚举项时 多个枚举项之间用逗号隔开,最后一个用分号结尾

4、枚举类中的方法

所有枚举类默认都是Enum的子类,无需使用extends来继承,这说明Enum中的方法所有枚举类都拥有,创建该枚举的实例就可以使用这些方法了

枚举类也可以有抽象方法和普通方法和静态方法,但是不经常使用

静态方法:只需要在该方法上加上static关键字。

5、枚举类型在switch中的使用

在switch不能使用枚举类名称因为编译器会根据switch中d的类型来判断每个枚举类型,在case中必须直接给出与d相同类型的枚举项,而不能在有类型

只需记住:在case中使用时不需要加类型、

public class SwitchTest {
    @Test
    public void testEnum(){
        WeekEnums sunday = WeekEnums.Sunday;
        switch (sunday){
            case Monday:
                System.out.println("星期一");
            case Tuesday:
                System.out.println("星期二");
        }
        //调用枚举类的自定义普通方法
        sunday.first();
        //调用枚举类的静态方法 类名.方法
        WeekEnums.second();
        //调用枚举类的父类Enum的方法,所有枚举类的父类默认是Enum,无需extends
        sunday.name();
        sunday.hashCode();
        sunday.notify();
        //等等.........
    }
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值