java 枚举 整形_java 枚举类型 enum

在java SE5中添加了枚举类型,即enum关键字。在这之前,当你需要创建一个整形常量集时,但是这些枚举值并不会必然的将其自身的取值限制在这个常量集的范围之内,因此这样做的显得不安全,也不方便使用。现在有了enum,就解决了上述的问题。

虽然enum看起来像一张新的数据类型,事实上enum是一个类,并且也有自己的方法(toString()  ordinal()  static values())。在使用的时候我们可以把enum当作一种创建数据类型的方式。

枚举类型的实例是常量,因此都用大写字母表示。

1、先创建一个枚举类型

1 package enumDemo;2 /**3 * 创建enum类型4 * @author dyf5 *6 */

7 public classEnum {8 public enumtest{9 NOT,10 MILD,11 MEDIUM,12 HOT,13 FLAMING;14 }15 }

2、测试enum自己的方法(toString()  ordinal()  static values()),

1 package enumDemo;2 /**3 * 测试enum自己的方法toString() ordinal() static values()4 */

5 import enumDemo.Enum.test;6

7 public classTestEnum {8 public static voidmain(String[] args) {9 //-----------------------------------------------

10 /**11 * 枚举类的使用12 */

13 test e =test.MEDIUM;14 System.out.println(e);15 //-----------------------------------------------

16

17 /**18 * 创建enum时,编译器会自动添加一些有用的特性。如19 * toString 方法,显示enum实例的名字20 * ordinal() static values()方法,表示某个特定enum常量的声明顺序21 */

22 for(test t : test.values()) {23 System.out.println(t + "---ordinal---" +t.ordinal());24 }25

26 //-----------------------------------------------

27

28 }29 }

打印结果:

MEDIUM

NOT---ordinal---0

MILD---ordinal---1

MEDIUM---ordinal---2

HOT---ordinal---3

FLAMING---ordinal---4

3、enum和switch结合使用,由于switch是要在有限的可能值集合中进行选择,因此与enum正式绝佳的组合。

1 package enumDemo;2 /**3 * enum与switch结合使用4 */

5 import enumDemo.Enum.test;6

7 public classTestEnumAndSwitch {8 test t;9 publicTestEnumAndSwitch(test t){10 this.t =t;11 }12

13 public voiddescribe(){14 System.out.println("This TestEnumAndSwitch is");15 switch(t){16 case NOT: System.out.println("not spicy at all");17 break;18 case MILD: System.out.println("=========1");19 case MEDIUM: System.out.println("a little hot");20 break;21 case HOT: System.out.println("=========2");22 case FLAMING: System.out.println("=========3");23 default: System.out.println("maybe too hot");24 }25 }26

27 public static voidmain(String[] args) {28 TestEnumAndSwitch29 t1 = newTestEnumAndSwitch(test.NOT),30 t2 = newTestEnumAndSwitch(test.MEDIUM),31 t3 = newTestEnumAndSwitch(test.HOT);32 t1.describe();33 t2.describe();34 t3.describe();35 }36 }

打印结果:

This TestEnumAndSwitch is

not spicy at all

This TestEnumAndSwitch is

a little hot

This TestEnumAndSwitch is

=========2

=========3

maybe too hot

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值