枚举:是指将变量的值一一列出来,变量的值只限于列举出来的值得范围内。

    格式:
    public enum s{
    枚举项1,枚举项2,枚举项3;
    }

    1、所有的枚举类都是Enum的子类
    2、我们可以通过“枚举类名.枚举项名称”去访问指定的枚举项
    3、每一个枚举项其实就是该枚举的一个对象
    4、枚举也是一个类,可以去定义成员变量
    5、枚举类的第一行上必须是枚举项,最后一个枚举项后的分号可以省略,但是如果枚举类还有其他东西,这个分号就不可以省略,不建议省略
    6、枚举类可以有构造器 ,但必须是private的,它默认也是private的。枚举项的用户比较可数:枚举(“”)
    7、枚举类也可以有抽象方法,但是枚举项必须重修该方法

    1. package com.enumdemo;
    2. public enum Season {
    3. SPRING("春"){
    4. @Override
    5. public void show() {
    6. System.out.println(this.name);
    7. }
    8. // 如果枚举类中有抽出方法,那么在枚举项中必须重写
    9. },SUMMER("夏"){
    10. @Override
    11. public void show() {
    12. System.out.println(this.name);
    13. }
    14. },AUTUMN("秋"){
    15. @Override
    16. public void show() {
    17. System.out.println(this.name);
    18. }
    19. },WINTER("冬"){
    20. @Override
    21. public void show() {
    22. System.out.println(this.name);
    23. }
    24. };
    25. public String name;
    26. // 空参构造
    27. // private Season(){
    28. //
    29. // }
    30. //有参构造
    31. private Season(String name) {
    32. this.name = name;
    33. }
    34. public abstract void show();
    35. }

    枚举中的常见方法:
    name() 返回枚举项名称:Season.SPRING.name() return SPRING
    ordinal() 返回枚举项在枚举类中的索引:Season.SPRING.ordinal() return 0
    compareTo 比较两个枚举项,返回索引的差值:Season.SPRING.compareTo(Season.WINTER); return -3
    toString 返回枚举常量的名称:Season.SPRING.name() return SPRING
    valueOf(Season.class,SPRING)获取指定文件指定枚举的枚举项:Enum. valueOf(Season.class,SPRING) return SPRING
    values() 返回所有所有的枚举项 Season.values() return 所有枚举