首页 > 代码库 > java 枚举类型 enum
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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。