Java 枚举类的使用和常见方法

一.枚举类定义

枚举类型是Java 5中新增特性的一部分,它是一种特殊的数据类型,它一样可以有自己的成员变量、方法,可以实现一个或者多个接口,也可以定义自己的构造器。在定义枚举类型时我们使用的关键字是enum,与class关键字类似

下面一个定义常量常见方式

public class DayDemo {
    private static int time= 1;

    public DayDemo(int time) {
        this.time = time;
    }

    public static final DayDemo MONDAY = new DayDemo(1);

    public static final DayDemo TUESDAY= new DayDemo(2);

    public static final DayDemo WEDNESDAY= new DayDemo(3);

    public static final DayDemo THURSDAY= new DayDemo(4);

    public static final DayDemo FRIDAY= new DayDemo(5);

    public static final DayDemo SATURDAY= new DayDemo(6);

    public static final DayDemo SUNDAY= new DayDemo(7);

}

这样的定义方式并没有什么错,但它存在许多不足,如在类型安全和使用方便性上并没有多少好处,现在我们利用枚举类型来重新定义上述的常量。

//枚举类型,使用关键字enum
enum Day {
    // 多个对象之间用“,”隔开
    MONDAY(1),
    TUESDAY(2),
    WEDNESDAY(3),
    THURSDAY(4),
    FRIDAY(5),
    SATURDAY(6),
    SUNDAY(7);

    private final int time;

    Day(int time) {
        this.time = time;
    }
}

相当简洁,同时我们应该知道的是枚举类型可以像类(class)类型一样,定义为一个单独的文件,当然也可以定义在其他类内部,但务必记住枚举表示的类型其取值是必须有限的,也就是说每个值都是可以枚举出来的,比如上述描述的一周共有七天。

二.枚举类的使用要点

  • 当需要定义一组常量时,强烈建议使用枚举类
  • 如果枚举类中只有一个对象,则可以作为单例模式的实现方式

三.Enum类的常用方法

  1. toString():返回当前枚举常量的常量名
    代码:
public static void main(String[] args){
        System.out.println(Day.MONDAY);
    }

输出:在这里插入图片描述

  1. valueOf():获取对象"名字"为指定指定字符串的枚举类对象,如果没有相应的对象,则抛异常IllegalArgumentException
    代码:
public static void main(String[] args){
        Day monday = Day.valueOf("MONDAY");
        System.out.println(monday);
    }

输出:
在这里插入图片描述
3. values():返回枚举类型的对象数组。该方法可以很方便地遍历所有枚举值。
代码:

public static void main(String[] args){
        Day[] values = Day.values();
        for (Day value : values) {
            System.out.println(value);
        }

    }

输出:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PareCycest

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值