枚举类型

1. 认识枚举

这是一个枚举类型:java

package enu;

public enum Enum1 {
	NOT, MILD, MEDIUM, HOT, FLAMING
}

枚举类型的实例是常量,所以按照命名惯例来它们都是用大写字母表示的。(若是在一个名字中有多个单词,用下划线将它们隔开)数组

看一下enum的使用this

package enu;

public class SimpleEnumUse {
	public static void main(String[] args) {
		Enum1 e1 = Enum1.MEDIUM;
		System.out.println(e1);
	}
}

将Enum的值赋给某个实例。
当你建立enum时,它会建立toString()方法。编译器还会建立ordinal() 方法用来表示某个特定的enum常量的声明顺序,以及static values()方法
用来按照enum的声明顺序,产生由这些常量构成的数组。
 enum其实是一种类,而且拥有本身的方法spa

用ordinal() 返回enum中的常量:code

package enu;

public class Enum2 {
	public static void main(String[] args) {
		for (Enum1 e : Enum1.values()) {
			System.out.println(e + ".ordinal " + e.ordinal());
		}
	}
}

 

2. 在switch 中用enum

package enu;


public class Enum3 {
	Enum1 degree;

	public Enum3(Enum1 degree) {
		this.degree = degree;
	}

	public void describe() {
		System.out.println("this Enum1 is");
		switch (degree) {
		case NOT:
			System.out.println("not spicy at all");
			break;
		case MILD:
		case MEDIUM:
			System.out.println("a little hot");
			break;
		case HOT:
		case FLAMING:
			System.out.println("maybe too hot");
			break;
		default:
			break;
		}
	}

	public static void main(String[] args) {
		Enum3 plain = new Enum3(Enum1.NOT);
		Enum3 greenChile = new Enum3(Enum1.MEDIUM);
		Enum3 jalapeno = new Enum3(Enum1.HOT);

		plain.describe();
		greenChile.describe();
		jalapeno.describe();
	}
}

输出:编译器

this Enum1 is
not spicy at all
this Enum1 is
a little hot
this Enum1 is
maybe too hotit

相关文章
相关标签/搜索