14-Java枚举

什么是枚举

JDK 1.5 新增的 enum 关键字用于定义枚举类
若枚举只有一个成员, 则可以作为一种单例模式的实现方式

枚举类的定义

要求:

  1. 枚举类对象的属性不应允许被改动, 所以应该使用 private final 修饰

  2. 枚举类的使用 private final 修饰的属性应该在构造器中为其赋值

  3. 若枚举类显式的定义了带参数的构造器, 则在列出枚举值时也必须对应的传入参数

  4. 必须在枚举类的第一行声明枚举类对象。

  5. 枚举类和普通类的区别:

    1. 使用 enum 定义的枚举类默认继承了 java.lang.Enum 类
    2. 枚举类的构造器只能使用 private 访问控制符
    3. 枚举类的所有实例必须在枚举类中显式列出(, 分隔 ; 结尾). 列出的实例系统会自动添加 public static final 修饰
  6. JDK 1.5 中可以在 switch 表达式中使用Enum定义的枚举类的对象作为表达式, case 子句可以直接使用枚举值的名字, 无需添加枚举类作为限定

  7. 枚举类对象的属性不应允许被改动, 所以应该使用 private final 修饰

  8. 枚举类的使用 private final 修饰的属性应该在构造器中为其赋值

  9. 若枚举类显式的定义了带参数的构造器, 则在列出枚举值时也必须对应的传入参数

  10. 必须在枚举类的第一行声明枚举类对象。

  11. 枚举类和普通类的区别:

  12. 使用 enum 定义的枚举类默认继承了 java.lang.Enum 类

  13. 枚举类的构造器只能使用 private 访问控制符

  14. 枚举类的所有实例必须在枚举类中显式列出(, 分隔 ; 结尾). 列出的实例系统会自动添加 public static final 修饰

  15. JDK 1.5 中可以在 switch 表达式中使用Enum定义的枚举类的对象作为表达式, case 子句可以直接使用枚举值的名字, 无需添加枚举类作为限定

public enum WeekDays {
    
    

    ZHOU1("周一"),
    ZHOU2("周二");

    private final String name;

    private WeekDays(String name){
    
    
        this.name = name;
    }
}

枚举类-Switch-case语句

WeekDays zhou1 = WeekDays.valueOf("ZHOU1");

        switch (zhou1){
    
    
            case ZHOU1:
                System.out.println("123");
                break;
            case ZHOU2:
                System.out.println("456");
                break;
        }

猜你喜欢

转载自blog.csdn.net/gjb760662328/article/details/129144018
今日推荐