Java枚举

导言:

枚举是一种数据类型,比如接口使用interface来定义,类使用class来定义,而枚举使用enum来定义,枚举与接口和类是三者是同一个层次上的,就是同一种级别的,它们代表的都是数据类型。


定义:

枚举就是要让某个变量的取值只能为若干个固定值中的一个,否则编译器会报错。

注意:在JDK1.5之后,使用关键字enum定义一种新的数据类型,称为枚举类型。


那么,在没有枚举类型的情况下,我们是怎么做的呢?来看如下一段代码

public class enumDemo {

    public static final int RED = 0X1;
    public static final int GREEN = 0X2;
    public static final int BLUE = 0X3;
    public int color;

    @Test
    public void test1(){
        color = RED;
    }
}

分析:如果我们按照如上代码来定义的话,各位想一想,能不能达到这样一种效果,就是color的取值只能是RED,GREEN,BLUE三种中的一种,很明显,我们一看就知道不行。因为color是一个变量,我们可以随意进行赋值,在编译时期,我们是无法检查出color的取值是不是RED,GREEN,BLUE三种中的其中一种。因此,我们有了枚举这种数据类型,我们再来一如下一段代码:

public enum Color {

    RED,GREEN,BLUE;

}
public class enumDemo {

    public static final int RED = 0X1;
    public static final int GREEN = 0X2;
    public static final int BLUE = 0X3;
    public int color;

    @Test
    public void test1(){
        color = RED;
        color = 4;
    }


    public Color colorEnum;
    @Test
    public void test2(){
        colorEnum=Color.RED;
        System.out.println(colorEnum);
    }

}

分析:我们定义了一个枚举类,名字为Color,在代码中,我们定义了一个colorEnum变量,这个变量的类型是Color,这个时候,也就意味着colorEnum的取值,只能是Color中定义的GREEN,RED,BLUE三种当中的其中一种,不能是别的,否则编译器会报错,这边就体现了枚举的一个作用——限制变量的取值范围。


由于colorEnum变量也是一个对象,所以在colorEnum中有一些对应的方法,我们可以用代码测试一下:

System.out.println(colorEnum.name());
System.out.println(colorEnum.ordinal());
System.out.println(colorEnum.toString());

运行结果如下:


对于Color这个枚举类型,里面有一个静态的方法——values(),这个方法的作用是:返回一个Color数组,这个Color数组包含了枚举的所有的值,可以通过values()这个方法来求得枚举类型都定义了哪一些取值,代码如下

 Color[] values = Color.values();
 System.out.println(Arrays.toString(values));

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值