enum枚举类型

enum枚举类型

1、 简单的例子:

public enum  Dana {
    A,B,C,D
}
//在这里创建了一个名为Dana的枚举类型,它有四个具名值,由于枚举类型的实例是常量,因此按照命名惯例它们都用大写字母表示(有多个单词则用下划线连接)
	public static void main(String[] args) {
		Dana dana = Dana.A;
		System.out.println(dana);
	}
}

在创建enum时,编译器会自动添加一些有用的特性,比如,

  它会创toString()方法,以便你可以很方便地显示某个enum实例的名字,上面打印出来的效果也是这个原理;
  编译器还会创建ordinal()方法,用来表示某个特定enum常量的声明顺序;
 以及static values()方法,用来在按照enum常量的声明顺序.产生由这些常量值构成的数组:

	public class EnumOrder {
	 public static void main(String[] args) {

	  for (Dana dana : Dana.values()) {
	   System.out.println(dana + ",ordinal " + dana.ordinal());
	  }
	 }
	}

2、 枚举在switch中的使用

switch 中的值类型只能为:byte ,short,char,int,String(在jdk1.7后也支持了),enum类型。

package enumDemo;
import enumDemo.Enum.test;

public class TestEnumAndSwitch {

    test t;

    public TestEnumAndSwitch(test t){
        this.t = t;
    }

    public void describe(){
        System.out.println("This TestEnumAndSwitch is ");
        switch(t){
        case NOT: System.out.println("not spicy at all");
            break;
        case MILD: System.out.println("=========1");
        case MEDIUM: System.out.println("a little hot");
            break;
        case HOT: System.out.println("=========2");
        case FLAMING: System.out.println("=========3");
        default: System.out.println("maybe too hot");
        }
    }

    public static void main(String[] args) {
        TestEnumAndSwitch 
            t1 = new TestEnumAndSwitch(test.NOT),
            t2 = new TestEnumAndSwitch(test.MEDIUM),
            t3 = new TestEnumAndSwitch(test.HOT);
        t1.describe();
        t2.describe();
        t3.describe();
    }
}
原文地址:https://www.cnblogs.com/0427mybirthday/p/7668932.html