123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- 枚举
- 为了间接的表示一些固定的值,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> T valueOf(Class<T> 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,则抛出异常。
|