枚举 为了间接的表示一些固定的值,Java提供了枚举类 将变量的值一个一个的列出来,变量的值只限于列举出来的范围内。 枚举也是引用变量的一种 类 数组 接口 枚举 注解 格式: public enum 类名{ 枚举项1,枚举项2,枚举项3,...,枚举项n; 定义枚举类必须是enum关键字 } 枚举的特点: 1、所有的枚举类都有一个共同的父类Enum类 2、我们可以通过"枚举类名.枚举项名"方式去访问指定的枚举项 3、每个枚举项其实就是这个枚举类的一个对象。 4、枚举也是一个类,也可以定义成员变量 5、枚举类的第一行必须是枚举项,最后一个枚举项后面是以分号结尾。如果枚举类中除了枚举项之外没有其他成员,则分号可以省略。 6、枚举类也可以有构造方法,但是必须是private的,默认也是private的 7、枚举类也可以有抽象方法,但是枚举项必须要重新这个抽象方法。 枚举的方法: String name() 获取枚举项的名称 int ordinal() 获取枚举项的索引值 int compareTo(E o) 比较两个枚举项,返回枚举项的差值 String toString() 返回枚举常量的名称 values() 获取所有的枚举项 static T valueOf(Class type,String name) 获取指定枚举类中的指定名称的枚举值 案例1: 定义一个星期的枚举Week,包含星期一(MONDAY)到星期日(SUNDAY)。 编写程序: 1、遍历枚举所有成员并打印 2、判断输入的字符串,比如MONDAY,是否为工作日周一-周五。 案例2: 定义一个表示季节的枚举Season,包含SPRING SUMMER AUTUMN WINTER 每个枚举成员需要包含两个属性:季节名称(中文)和平均温度(整数) 需要实现的方法: getChineseName() 返回该枚举项的中文名称 getAvgTemperature() 返回平均温度 编写测试代码,打印每个季节的中文名称和平均温度。 案例3 定义一个接口Operation 包含方法 int calculate(int a,int b)。 定义枚举类ArithmeticOperation类实现Operation接口,包含加、减、乘、除四个枚举项。 实现每个枚举项的计算方法,完成对应的运算,如果进行除法运算时,如果除数为0,则抛出异常。