JAVA从小白到大牛(15)--------枚举类
15.1 枚举概述
需要定义一组相关常量,为了提高程序可读性,可以把一组常量放置在一起,由统一的一个类型管理,
这个类型就是枚举类型(Java5之前没有)
不用枚举类型时:
使用一组常量的缺点是:
1. 类型不安全
2. 程序调试不方便
Java5之后 枚举类型的特点
1. Java枚举类型是一种类,是引用类型,具 有了面向对象特性,可以添加方法和成员变量等
2. Java枚举类型父类是 java.lang.Enum,不需要显式声明
3. Java枚举类型可以实现接口,与类实现接口类似
4. Java枚举类型不能被继承,不存在子类
15.2 枚举类声明
声明枚举类型语法:
[public] enum 枚举名{
枚举常量列表
}
访问控制级别有两种:public公有的,默认的
15.2.1 最简单形式的枚举类
这里就限制了 day只能是枚举类中的值,不会出现非法赋值
15.2.2 枚举类中成员变量和成员方法
静态或者实例成员变量,也可以有静态或实例的方法,但不能有抽象方法
15.2.3 枚举类构造方法
枚举类型中的构造方法是 私有的
在外部不可见,目的就是为了防止在外部实例化
有了构造方法,内部实例化语句也要随之改变
调用 toString()之后
15.3 枚举常用方法
1. int ordinal():
返回枚举常量的顺序。这个顺序根据枚举常量声明的顺序而定,顺序从零开始
2. 枚举类型[] values():
静态方法,返回一个包含全部枚举常量的数组
3. 枚举类型 valuesOf(String str):
静态方法,str是枚举常量对应的字符串,返回 一个包含枚举类型
枚举类型比较时。equals() 和 == 一样,由于枚举类型中的常量值永远只有一个实例,
从这一点看,枚举类型采用的是单例设计模式
java.lang.Enum()类 源码