2018-07-26 枚举

什么是枚举

枚举是从java5开始提供的一种新的数据类型,是一个特殊的类,就是固定的多个常量集合


格式:

[修饰符] enum 枚举类名

{

    常量A,常量B

}

在底层直接继承enum类,Enum是所有枚举的父类


特点:(只是轻微的总结)

    枚举的直接父类java.lang.Enum,不显示继承Enum

    枚举相当于一个类,可以定义构造方法,成员变量,普通方法和抽象方法

    默认私有的构造方法,即使不写访问权限也是private,(底层没有无参构造器)

    每一个实例都是用全局变量表示,枚举对象是固定的,个数有限,不能使用new关键字

    枚举实例必须在枚举体的最开始部分,最后要用分号隔开

    枚举实例后面有花括号,表示是枚举的匿名内部类对象


枚举的使用:

    枚举中都是全局公共的静态常量,可以直接使用类名调用

    Enum是所有枚举的父类,所以可以调用Enum中的方法

        String name = 枚举对象.name();//返回常量名称

        int ordinal = 枚举对象.ordinal();// 返回对象的序号,从0开始

        String str = 枚举对象.toString();// 返回枚举对象的常量名称

    编译器生成的枚举类是静态方法

        枚举类型[] values():  返回当前枚举类型所有的常量,使用数组封装

        枚举类型[] valueof(String name); 把一个指定名称字符串转换为当前枚举类型中同名的常量

    从java5开始出现枚举,switch也支持枚举

        switch只支持int类型,支持枚举是因为底层使用的枚举对象的ordinal,而ordinal的类型依然是int类型


推荐书籍<>

你可能感兴趣的:(2018-07-26 枚举)