java枚举(enum)详解,为枚举添加方法

KLQ 2020-08-31 09:58:59 java常见问答 5612

我们都知道java为枚举类型提供了一些内置的方法,但是,要知道的是枚举常量也可以有自己的方法,下面一起来了解一下吧。

这个时候一定要注意,必须在枚举实例的最后一个成员后添加分号,并且,必须先定义枚举实例。

示例:

来看一下下面的示例:

创建一个枚举类型WeekDay,在这个类型当中,添加了自定义的方法:

enum WeekDay
{
    Mon("Monday"), Tue("Tuesday"), Wed("Wednesday"), Thu("Thursday"), Fri("Friday"), Sat("Saturday"), Sun("Sunday");
    // 以上是枚举的成员,必须先定义,而且使用分号结束
    private final String day;
    private WeekDay(String day)
    {
        this.day = day;
    }
    public static void printDay(int i)
    {
        switch (i)
        {
        case 1:
            System.out.println(WeekDay.Mon);
            break;
        case 2:
            System.out.println(WeekDay.Tue);
            break;
        case 3:
            System.out.println(WeekDay.Wed);
            break;
        case 4:
            System.out.println(WeekDay.Thu);
            break;
        case 5:
            System.out.println(WeekDay.Fri);
            break;
        case 6:
            System.out.println(WeekDay.Sat);
            break;
        case 7:
            System.out.println(WeekDay.Sun);
            break;
        default:
            System.out.println("wrong number!");
        }
    }
    public String getDay()
    {
        return day;
    }
}

上面的代码当中,创建了WeekDay枚举类型,下面遍历这个枚举当中的所有成员,并且,调用printDay()方法。

示例代码:

public static void main(String[] args)
{
    for (WeekDay day: WeekDay.values())
    {
        System.out.println(day + "====>" + day.getDay());
    }
    WeekDay.printDay(5);
}

输出结果:

Mon====>Monday
Tue====>Tuesday
Wed====>Wednesday
Thu====>Thursday
Fri====>Friday
Sat====>Saturday
Sun====>Sunday
Fri

Java当中的enum还能够跟Class类一样覆盖基类的方法。

下面的示例当中,创建的Color枚举类型覆盖了toString()方法:

public class Test
{
    public enum Color
    {
        RED("红色", 1), GREEN("绿色", 2), WHITE("白色", 3), YELLOW("黄色", 4);
        // 成员变量
        private String name;
        private int index;
        // 构造方法
        private Color(String name, int index)
        {
            this.name = name;
            this.index = index;
        }
        // 覆盖方法
        @Override
        public String toString()
        {
            return this.index + "-" + this.name;
        }
    }
    public static void main(String[] args)
    {
        System.out.println(Color.RED.toString()); // 输出:1-红色
    }
}

上面的内容就给你介绍到这里,更多java枚举常见问题,可以继续的通过奇Q工具网来进行了解哦。

推荐阅读:

java枚举(enum)详解,枚举类

java枚举(enum)详解,声明枚举

java枚举是什么意思?如何在内部类和switch中使用?