枚举.txt 2.3 KB

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