枚举类型

关键字enum可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用。这是一种非常有用的功能。

 

1.基本的enum特性:

枚举类的valueOf()静态方法返回枚举实例数组;

枚举实例的ordinal()方法返回int值,是此实例在声明时的次序,从0开始;

枚举实例的getDeclaringClass()方法返回此枚举实例所在的枚举类名称;

枚举实例的name()方法返回此枚举实例声明时的名称,与使用toString()方法效果相同;

 

2.向enum中添加新方法:

如果你打算定义自己的方法,那么必须在enum实例序列的最后添加一个分号。同时,java要求你必须先定义enum实例。否则将编译出错。枚举中的构造器与方法和普通的类没有区别,除了有少许的限制外,enum就是一个普通的类。

 

3.覆盖enum的方法:

toString()方法通过调用name()方法取得SpaceShip的名字,然后将其修改为只有首字母大写的格式。

 

4.使用接口组织枚举:

在一个接口的内部创建实现该接口的枚举,以此将元素进行分组,可以达到将枚举元素分类组织的目的。

对enum而言,实现接口是使其子类化的唯一办法,所以嵌入在Food中的每个enum都实现了Food接口。

如果enum类型实现了Food接口,那么我们就可以将其实例向上转型为Food,所以上例中的所有东西都是Food。

 

5.常量相关的方法:

enum有个非常有趣的特性,它允许程序员为enum实例编写方法,从而为每个enum实例赋予各自不同的行为。要实现常量相关的方法,你需要为enum定义一个或多个abstract方法,然后为每个enum实例实现该抽象方法。参考下面的例子:

在面向对象的程序设计中,不同的行为与不同的类关联。而通过常量相关的方法,每个enum实例可以具备自己独特的行为,这似乎说明每个enum实例就像一个独特的类。在上面的例子中,enum实例似乎被当作其“超类”ConstantSpecificMethod来使用,在调用getInfo()方法时,体现出多态的行为。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值