Java简单枚举应用

枚举是个好东西,前段时间因为需要命名一种常量连续分布的数据结构,第一时间就想到了枚举,枚举确实不错,尤其是加入了面对对象技术之后,简直就是一大命名神器,下面介绍一下枚举简单的应用

JDK1.5开始新增关键字enum,即定义枚举类型

[public] enum 枚举类型名{
    枚举成员1,枚举成员2 ,枚举成员3........;
}

一个源文件只能定义一个public类型的枚举类型,枚举类型经过Java编译期编译后,也将会产生一个字节码文件(.class)。枚举类型本质上也是类,是一种特殊的类

注意: 所有的枚举类型都隐性地继承java.lang.Enum类

定义枚举类型

enum Diretions{
    EAST,SOUTH,WEST,NORTH;
}
public class enumTest {
    public static void main(String[]args){
        Directions dir=Directions.EAST;
        System.out.println("enum:"+dir);
    }
}

这里写图片描述

此外switch也支持枚举类型(enum)

枚举类型与枚举类的区别

1、使用enum关键字定义一个枚举类型,实际上相当于定义了一个类,该类继承了java.lang.Enum类
2、枚举类Enum是java.lang包中的 一个类,该类的构造方法是protected的,实际上定义一个枚举类型之后,就会自动调用Enum类的构造方法,当然Enum类中其他的方法也是可以调用的。

常见的Enum类的方法有以下几种(红箭头表示处)(来源于java.api官方文档)

这里写图片描述

前面提示过,所有的枚举类型都隐性地继承java.lang.Enum类,就是说所有的枚举类型都可以看成一个类,当定义一个枚举类型时,每个枚举类型成员都是枚举类型的一个实例,这些实例默认属性是public static final,可以直接通过类名.变量的形式访问,即枚举类型名.枚举类型成员

枚举类型的values()方法

枚举类型实例都含有一个values()方法,该方法是静态的,用于将枚举类型成员以数组的形式返回。

因为返回的是数组,所以使用length可以获得数组的长度,再通过ordinal方法返回枚举成员的序号。

enum Diretions{
    EAST,SOUTH,WEST,NORTH;
}
public class enumTest {
    public static void main(String[]args){
       for(int i=0;i<Directions.values().length;i++)
           System.out.println(Directions.values()[i].ordinal());
    }
}

这里写图片描述

枚举类与接口

一般情况下,接口都包含抽象方法,当一个枚举类实现接口时,每一个枚举成员对象都必须实现接口中的抽象方法。与普通类一样,枚举类也可以实现多个接口,但必须实现所有的抽象方法。

枚举类实现接口与普通类是一致的,都是使用implements关键字来实现接口的,并且要实现接口中的所有抽象方法。可以说枚举中的枚举成员都是枚举类的匿名内部子类。

小结

本次实验的主题就是理解面对对象中的enum,掌握其中的基本用法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值