【学习Day18】什么是枚举类型?什么场景下使用?

在这里插入图片描述

一、概述

枚举是和类以及接口同一个级别的类型,本质就是类(枚举类型编译后也会生成字节码文件)
特殊:枚举是对只有有限对象个数的类的独立(枚举类型中提供对象个数是在定义枚举的时候就已经决定,外面不能添加枚举对象,在外面只能获取枚举对象使用),比如:星期只能有7个对象.

二、使用场景

  • 有固定对象的个数比如(一个年有12个月)其对象有12个
  • 实现单例模式

三、定义

采用eunm 关键字定义枚举类

public eunm MyEnum{

}

四、常见方法

以下为可直接通过枚举类调用对的方法
在这里插入图片描述

以下为枚举对象的方法

返回类型方法名称方法说明
intcompareTo(E o)比较此枚举与指定对象的顺序
booleanequals(Object other)当指定对象等于此枚举常量时,返回 true。
ClassgetDeclaringClass()返回与此枚举常量的枚举类型相对应的 Class 对象
Stringname()返回此枚举常量的名称,在其枚举声明中对其进行声明
intordinal()返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)
StringtoString()返回枚举常量的名称,它包含在声明中
static> Tstatic valueOf(Class enumType, String name)返回带指定名称的指定枚举类型的枚举常量。

五、特性

  1. 枚举类默认继承 java.lang.Enum 类,而不是 Object 类,因此枚举类不能显示继承其他父类。
  2. 使用 enum 定义的非抽象的枚举类默认会使用 final 修饰,因此非抽象枚举类不能派生子类(即不能被继承)。
  3. 枚举类的构造器只能使用 private 访问控制符,如果忽略访问控制符的话,则默认使用 private 修饰;如果强制指定其他的访问控制符(例如public、procted等),则会报错。
  4. 枚举类的所有实例必须在枚举类的第一行显示列出,否则这个枚举类永远都不可能产生实例。列出的这些实例,系统会自动给它们加上 public static final 修饰。枚举类的实例以逗号分隔,分号结束,这些列出的枚举值代表了该枚举类的所有可能的实例

六、switch枚举使用

从JDK1.5开始,支持枚举了,然后从JDK1.7开始,也支持String类型

enum Signal {
    GREEN, YELLOW, RED
}

public class Test {
    Signal color = Signal.RED;

    public void change() {
        switch (color) {
        case RED:
            color = Signal.GREEN;
            break;
        case YELLOW:
            color = Signal.RED;
            break;
        case GREEN:
            color = Signal.YELLOW;
            break;
        }
    }
}

在swith中用枚举类型 大大的优化代码的可读性和维护性

七、单例模式枚举

public enum EasySingleton{
    INSTANCE;
}

其原因枚举类的每一个对象都是唯一的,所以一个枚举类中只有一个对象的时候就是单例模式。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值