java第二篇 枚举类的使用

为什么需要枚举?

    枚举一般用来定义一些固定的不变的数据,JDK5以前采用自定义带有枚举功能的类解决,Java5以后可以直接使用枚举予以解决.(以前最先是
    通过定义类,类里面定义常量来定义固定的不变的数据,后来通过定义对象,定义一系列当前对象并私有化构造器来解决这个问题,但书写比较
    麻烦,所以提供枚举来解决这一问题)

JDK 5新增的 enum 关键字用于定义一个枚举类.

    创建枚举格式:
        enum 枚举类型名称 {
        枚举对象1名称,
        枚举对象2名称,
        … , 
        枚举对象n名称;
        }

枚举类的特性:

    枚举类也是一种特殊形式的Java类。
    枚举类中声明的每一个枚举值代表枚举类的一个实例对象。
    与java中的普通类一样,在声明枚举类时,也可以声明属性、(抽象)方法和构造函数,但枚举类的构造函数必须为私有的(这点不难理解)。
    枚举类也可以实现接口、或继承抽象类。
    JDK5中扩展了swith语句,它除了可以接收int, byte, char, short外,还可以接收一个枚举类型。
    若枚举类只有一个枚举值,则类似java的单例模式,只有一个实例。

枚举API:

    Java中声明的枚举类,均是java.lang.Enum类的孩子,它继承了Enum类的所有方法(注意,不需要再进行extends继承Enum,这个底层
    处理了)。常用方法:
    name()  返回枚举对象名称
    ordinal() 返回枚举对象下标
    valueof(Class enumClass, String name) 转换枚举对象
    自定义的枚举类 在编译阶段自动生成下面方法
    valueof(String name)  转换枚举对象(枚举对象调用)
    values()  获得所有枚举对象数组(枚举对象调用)

枚举是编译期状态:

    其实枚举也是编译期状态,在运行时JVM并不知道什么是枚举类型。这也就是说,编译器需要把枚举类型转换成普通类。(可以直接查看相应类
    的.class,如:ColorEnum.class 这里面其实是个普通类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值