java-枚举

    xiaoxiao2025-01-27  92

    枚举类Enum

    枚举概述

    在java5以前,可以使用接口声明静态常亮代替枚举常量 public interface myEnum { int MONDAY = 0; int TUESDAY = 0; int WENNESDAY = 0; int THURSDAY = 0; int FRIDAY = 0; } 也可以在一般类中声明一组静态常量 public static void main(String[] args) { int day = TUESDAY; switch (day) { case MONDAY: System.out.println("星期一"); break; default: System.out.println("xx"); } } 上面代码,类型不安全,因为程序执行过程中很有可能day变量会传入一个任意的数值,不方便调试,如果通过入职输出day值,那么只能看到0~4之间的数值,但是并不知道其值代表的含义枚举类型是一种类,引用类型,具有了面向对象的特征,可以添加方法和成员变量枚举类不能被继承,但是可以实现接口

    枚举类声明

    [public] enum 枚举名 { 枚举常量 }
    最简单的枚举类
    public static void main(String[] args) { WeekDays weekDays = WeekDays.TUSESDAY; System.out.println(weekDays); switch (weekDays) { case MONDAY: System.out.println("星期一"); break; case TUSESDAY: System.out.println("星期二"); break; case WEDNESDAY: System.out.println("星期三"); break; default: System.out.println("xxxx"); } }
    枚举类中成员变量和成员方法
    枚举类可以像类一样包含成员变量和成员方法,成员变量可以使实例变量也可以是静态变量,成员方法可以使实例方法也可以是静态方法,但不能是抽象方法
    枚举类构造方法
    在枚举类中也是通过构造方法来初始化成员变量的

    枚举常用方法

    int ordinal(): 返回枚举常量的顺序,这个顺序根据枚举常量声明的顺序而定,顺序从0开始枚举类型[] values():静态方法,返回一个包含所有枚举变量的数组枚举类型 valueOf(String str): 静态方法,str是枚举常量对应的字符串,返回一个包含枚举类型的实例 public static void main(String[] args) { WeekDaysA[] allValues = WeekDaysA.values(); // 遍历枚举常量数组 for (WeekDaysA weekDaysA : allValues) { System.out.printf("%d - %s\n", weekDaysA.ordinal() + 1, weekDaysA); } WeekDaysA weekDaysA = WeekDaysA.FRIDAY; WeekDaysA weekDaysb = WeekDaysA.valueOf("FRIDAY"); // 输出为TRUE System.out.println(weekDaysA == WeekDaysA.FRIDAY); // 输出TRUE System.out.println(weekDaysA.equals(WeekDaysA.FRIDAY)); // 输出为TRUE System.out.println(weekDaysA == weekDaysb); }
    最新回复(0)