Java基础之枚举

本文深入探讨了Java中枚举类的定义与使用,对比了传统常量类,阐述了枚举类的强类型检查特性,以及其提供的name(), ordinal(), values()等实用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

枚举类

在java中,我们可能需要常量类来表示,比如星期,天气,月份。下面我们星期来做演示。

常量类

public class Weekday {
    public final static int MON = 0;
    public final static int TUS = 1;
    public final static int WED = 2;
    public final static int THU = 3;
    public final static int FRI = 4;
    public final static int SAT = 5;
    public final static int SUN = 6;
}

常量类的使用

if(Weekday.MON == 0 && Weekday.FRI == 7){}

实际上Weekday的常量值得范围是不包括的7的,但是这里依然会比较。

枚举类

定义

public enum Weekday {
    MON,
    TUS,
    WED,
    THU,
    FRI,
    SAT,
    SUN;
}   

public class Main {
    public static void main(Stirng[] args){
        Weekday day = Weekday.SUN;
        if( Weekday.SUN == day ){
            System.out.println("This is sunday!");
        } else {
            System.out.println("This is Saturday!");
        }
    }
}

这里,枚举类会做强类型检查,如果比较的范围,超出类枚举值定义的返回,会报编译错误。

编译完后的class:

public static final Weekday extends enum {
    public static final Weekday MON = new Weekday();
    public static final Weekday TUS = new Weekday();
    ...
}

常用方法

name()

Weekday.MON.name(); //"MON"

ordinal():返回当前枚举值在枚举定义的排序

Weekday.MON.ordinal();// 1

values():这个方法属于字节码提升的方法

Weekday.values(); //返回所有枚举值的数组

小结

  • 枚举类比较的时候会做强类型检查,确保比较的值,在枚举定义的值范围内
  • 枚举值有定义的顺序
  • 可以通过values()获取到所有的枚举值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值