java 枚举类型 enum
Posted 街角小七
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 枚举类型 enum相关的知识,希望对你有一定的参考价值。
在java SE5中添加了枚举类型,即enum关键字。在这之前,当你需要创建一个整形常量集时,但是这些枚举值并不会必然的将其自身的取值限制在这个常量集的范围之内,因此这样做的显得不安全,也不方便使用。现在有了enum,就解决了上述的问题。
虽然enum看起来像一张新的数据类型,事实上enum是一个类,并且也有自己的方法(toString() ordinal() static values())。在使用的时候我们可以把enum当作一种创建数据类型的方式。
枚举类型的实例是常量,因此都用大写字母表示。
1、先创建一个枚举类型
1 package enumDemo; 2 /** 3 * 创建enum类型 4 * @author dyf 5 * 6 */ 7 public class Enum { 8 public enum test{ 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 class TestEnum { 8 public static void main(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 class TestEnumAndSwitch { 8 test t; 9 public TestEnumAndSwitch(test t){ 10 this.t = t; 11 } 12 13 public void describe(){ 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 void main(String[] args) { 28 TestEnumAndSwitch 29 t1 = new TestEnumAndSwitch(test.NOT), 30 t2 = new TestEnumAndSwitch(test.MEDIUM), 31 t3 = new TestEnumAndSwitch(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
以上是关于java 枚举类型 enum的主要内容,如果未能解决你的问题,请参考以下文章