枚举类型-CodeKing

枚举:

用于定义常量的方式

可以将枚举类型看做一个类,继承与java.lang.Enum类,当定义一个枚举类型时,每一个枚举类型的成员都可以看做枚举类型的实例,这些枚举类型成员都默认被public,static,final修饰。

class Color
{
     public static final Color RED = new Color();
     public static final Color BLUE = new Color();
     public static final Color GREEN = new Color();
}

定义枚举:关键字enum

public enum Constants{ Constants_A, Constants_N; }
  • 各枚举值之间用 , 分割

关于枚举类型的常用方法:

  • values():将枚举类型中所有枚举值以数组的形式返回。
public enum SeasonEnum {
    SPRING,SUMMER,AUTUMN,WINTER;
}

class SHowEnum{
    public static void main(String[] args) {
        SeasonEnum[] values = SeasonEnum.values();
            for (SeasonEnum seasonEnum:values) {
                System.out.println(seasonEnum);
        }
    }
}

输出结果:
SPRING
SUMMER
AUTUMN
WINTER
  • valuesOf()方法:返回指定字符串值的枚举常量
  • 与comepareTo()方法:用于比较两个枚举类型对象定义是的顺序
public enum SeasonEnum {
    SPRING,SUMMER,AUTUMN,WINTER;
}

class SHowEnum{
    public static void main(String[] args) {
        SeasonEnum[] values = SeasonEnum.values();
        SeasonEnum summer = SeasonEnum.valueOf("SUMMER");
        for (SeasonEnum seasonEnum:values) {
            int i = seasonEnum.compareTo(summer);
            System.out.print(i+"\t");
        }
    }
}
输入结果:
-1    0    1    2    
  • ordinal(): 获取某个枚举对象的索引值
public enum SeasonEnum {
    SPRING,SUMMER,AUTUMN,WINTER;
}

class SHowEnum{
    public static void main(String[] args) {
        SeasonEnum[] values = SeasonEnum.values();

        for (SeasonEnum seasonEnum:values) {
            System.out.println(seasonEnum+"的索引值是:"+seasonEnum.ordinal());
        }
    }
}
输出结果:
SPRING的索引值是:0
SUMMER的索引值是:1
AUTUMN的索引值是:2
WINTER的索引值是:3

枚举的有参构造:

  • 枚举类型的构造器必须用private修饰:
  • 定义有参构造后,需要枚举成员使用相应的有参构造
public enum SeasonEnum {
    SPRING("三月到五月"),
    SUMMER("六月到八月"),
    AUTUMN("九月到十一月"),
    WINTER("十二月到二月");

    private String time;

    SeasonEnum(String time) {
        this.time = time;
    }

    public String getTime() {//通过getter方法获取常量值
        return time;
    }
}

class SHowEnum{
    public static void main(String[] args) {
        SeasonEnum[] values = SeasonEnum.values();

        for (SeasonEnum seasonEnum:values) {
            System.out.println(seasonEnum+"的月份是:"+seasonEnum.getTime());
        }
    }
}
输出结果:
SPRING的月份是:三月到五月
SUMMER的月份是:六月到八月
AUTUMN的月份是:九月到十一月
WINTER的月份是:十二月到二月

使用枚举的优点:

  • 类型安全
  • 方便与其他程序交互
  • 运行效率高
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值