枚举的基本使用
一、什么是枚举
在生活中,我们可能会遇到这种问题:
1、把0-9之间的整数列出来
2、列出每周星期一到星期天的内容
那么我们为了回答这些问题,就会把0-9和星期几的内容一一列出来,这种方式就是枚举。
在Java语言中,也可以使用枚举,枚举可以看成是一些常量的集合,以星期为例,多个值之间用逗号分隔,定义如下:
enum Week{MONDAY,TUESDAY,WEEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY}
其中,enum是定义枚举类型的关键字,Week是定义的枚举类型,大括号中的内容是具体的枚举值。使用的时候用Week.MONDAY表示星期一
二、为什么使用枚举
1、减少代码中的bug
如果我们使用字符串表示星期几,那么字符串的值很容易写错,比如将“THURSDAY”写成了“THURDAY”,代码并不会出现编译错误。而如果使用枚举,一旦Week中没有THREDAY这个值就会出现编译错误。
2、增加代码的可读性
在实际开发中我们会遇到一些状态表示的场景,如订单的状态包括未付款、已付款、已发货和确认收货,如果使用0表示未付款,1表示已付款,2表示已发货,3表示确认收货,那么和下面的枚举定义对比,哪个可读性好一目了然。
enum OrderState{NOT_PAY,PAID,DELIVERED,RECEIVED}
三、枚举的使用
之前我们已经演示了如何使用enum关键字进行了枚举的定义,下面根据案例进行详细说明。
1、定义表示星期的枚举值,并对枚举值进行输出。枚举可以定义在类的内部,也可以声明到独立的类中,但是不能定义在方法中。
注:枚举值不一定要大写,此处之所以是大写是因为枚举值是常量,而常量在Java中一般都是要大写的。
1)将枚举定义在类内部的情况
public class WeekDemo{
//定义星期的枚举
enum Week{
MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY
}//注意此处是没有分号的
public static void main(String[] args){
//输出星期二的值
System.out.println(Week.TUESDAY)