Java基础-枚举

枚举

日常求赞,感谢老板。

欢迎关注公众号:其实是白羊。干货持续更新中…

在这里插入图片描述

关键字enum

枚举类中的每个值都将映射到protected Enum(String name,int ordinal)构造函数上,在这里每个值的名称都会转换为一个字符串,序号表示创建的顺序

每个值都是一个Enum<E extends Enum>对象

可以理解为enum关键字声明的是类,里面的每个值都是对象(创建的对象)(自我理解)

常用操作

遍历enum

//遍历
        for (MyEnum e : MyEnum.values()) {
            System.out.println(e.name()+":"+e.ordinal());
        }
输出:
a:0
b:1
c:2

switch

MyEnum myEnum=MyEnum.a;
        switch (myEnum){
            case a:
                System.out.println("我是a");
                break;
            case b:
                System.out.println("我是b");
                break;
        }

常用方法

  • int comparaTo(E o)

    比较此枚举和制定对象的顺序。(比他小返回-1,比他大返回1,相等你猜返回啥)

  • Class getDeclaringClass()

    返回与此枚举常量类型相对应的Class对象(就是获取class对象)

  • String name()

    返回此枚举常量的名称,在枚举声明时对其声明

  • int ordinal()

    返回枚举常量的序号

  • String toString()

    返回枚举常量的名称

  • static <T extends Enum> T valueof(Class enumType ,String name)

    返回带指定名称和指定枚举类型的枚举常量

自定义方法和属性

public enum EnumTest {
    MON(1), TUE(2), WED(3), THU(4), FRI(5), SAT(6) {
        @Override
        public boolean isRest() {
            return true;
        }
    },
    SUN(0) {
        @Override
        public boolean isRest() {
            return true;
        }
    };
 
    private int value;
 
    private EnumTest(int value) {
        this.value = value;
    }
 
    public int getValue() {
        return value;
    }
 
    public boolean isRest() {
        return false;
    }
}
public class Test {
    public static void main(String[] args) {
        System.out.println("EnumTest.FRI 的 value = " + EnumTest.FRI.getValue());
    }
}
输出结果:

EnumTest.FRI 的 value = 5

外面有方法了,每个值自己才能重写

应用场景

  1. 常量

     public enum Color {  
      RED, GREEN, BLANK, YELLOW  
     } 
    

    直接Color.RED.name()

  2. switch

    见上

总之每个枚举都可是某一类对象描述的集合
每个值都是一个包含这个对象某些描述信息的集合

最后

更多资源:其实是白羊

欢迎star

日常乞讨

  • 如果你认为本文对你有帮助,还请「在看/转发/赞/star」,多谢
  • 如果你还发现了更好或不同的想法,还请在留言区不吝赐教,一起探讨交流修改,万分感谢

欢迎关注公众号:「其实是白羊」干货持续更新中…

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值