天天看点

【java】enum定义枚举类 (jdk1.5 之后的新特性)

package meiju;

/*
 *  jdk1.5 之后的新特性    enum定义枚举类
 *  enum在自定义枚举类的基础上有改动:
 *  1,类内部创建对象的环节必须放在最上面;
 *  2,把创建的多个对象所拥有的相同结构去掉,并把多个对象之间用于分隔的“;”改成“,”,当最后一个对象的结尾仍然保持“;”用来结束。
 *  3,掌握enum的两个方法的使用 Values(); 和     valueOf(String name);
 */
public class TestWeek {
	public static void main(String[] args) {
		// enum的两个常用方法
		// Values(); 返回值是当前对象的枚举类型的一个数组。
		// 作用:以数组的形式返回当前枚举类中所有的对象。
		Week[] wvl = Week.values();
		for (Object obj : wvl) {
			System.out.println(obj);
		}

		System.out.println();

		// valueOf(String name);
		// 作用:返回当前枚举类中与传入的字符串名字相同的对象。
		Week sunday = Week.valueOf("SUNDAY");
		System.out.println(sunday);
	}

}

enum Week {
	// 4,创建对象(enum创建对象环节必须放在最上边)
	MONDAY("monday", "周一"), TUESDAY("tuesday", "周二"), WEDNESDAY("wednesday",
			"周三"), THURSDAY("thursday", "周四"), FRIDAY("friday", "周五"), SATURDAY(
			"saturday", "周六"), SUNDAY("sunday", "周日");
	// 1,private final 的属性;
	private final String name;
	private final String desc;

	// 2,私有化构造器,并初始化属性
	private Week(String name, String desc) {
		this.name = name;
		this.desc = desc;
	}

	// 3,公共方法调取属性
	public String getName() {
		return name;
	}

	public String getDesc() {
		return desc;
	}

	@Override
	public String toString() {
		return "Week [name=" + name + ", desc=" + desc + "]";
	}

}