为什么要引入枚举类:
例:
就是因为在没有枚举类的时候,我们要定义一个有限的序列,比如星期几,男人女人,春夏秋冬,一般会静态常量的形式,但是使用那样的形式如果需要一些其他的功能,需要些很多奇奇怪怪的代码。所以,枚举类的出现,就是为了简化这种操作
使用一个简单的枚举类表示 星期:
在枚举类中添加值和方法
当一个类的对象是有限且固定时,用枚举类比较方便。
为什么不使用静态常量替代枚举类?
1、类型不安全。如果一个方法要求传入参数,如果是枚举类型,只能传入枚举类型中包含的对象
2、没有命名空间。
简单的枚举类:
高级的枚举类(带参构造器):
枚举类的所有实例都必须放在第一行展示,不需要使用new关键字,不需显示调用构造器,自动添加public static final修饰。
使用enum定义非抽象的枚举类默认使用final修饰,不可以被继承。
枚举类的构造器只能是私有的。
枚举类内也可以定义属性和方法,可以是静态的非静态的。
枚举类实现接口:
枚举类可以实现一个或多个接口。需要实现接口中的所有方法,若没有完全实现,则枚举类应设为abstract类。
采取实现了实现抽象方法和匿名内部类的实现,花括号部分是一个类体。
枚举类实现抽象方法:
java核心卷示例代码:
枚举类和switch:
case表达式直接写入枚举值,不需加入枚举类作为限定。