枚举,是JDK1.5引入的新特性,可以通过关键字enum来定义枚举类。

  1. 枚举类是一种特殊的类,它和普通类一样可以使用构造器、定义成员变量和方法,也能实现一个或多个接口。
  2. 枚举其实也是一种类,同时还是一个final修饰的类。
  3. 枚举类型都会默认继承一个父类型(java.lang.Enum),这还是一个抽象的泛型类。
  4. 枚举中所定义的对象,其实就是类里面的public static final修饰的常量,并且这些常量会在静态代码块中做初始化。
  5. 枚举类型中还一个默认的私有构造器,说明在枚举类的外面并不能自己去创建枚举类型的对象。
  6. 枚举类型中还有默认添加进来的方法:
    values()方法,可以返回这个枚举类型的所有对象,返回类型是数组。
    valueOf(String str)方法,通过一个字符串可以返回枚举对象,这个字符串参数就是枚举对象的名字。
  7. 枚举类型会从父类中继承过来一些方法:
    (1)String name(),返回这个枚举对象的名字;
    (2)int ordinal(),返回这个枚举对象的编号,默认从0开始。
  8. 枚举类中可以定义属性和方法、构造器、抽象方法、接口。一个类型的对象个数和名称能固定下来的,可以考虑使用枚举类型来表示。状态码–>定义成枚举类。(404-页面找不到)
  9. 获取枚举对象的三种方式:
    (1)直接使用类名访问类中定义的对象。
    (2)通过字符串参数的改变,可以获取到指定的枚举类中指定的对象,调用valueOf方法。
    (3)通过字符串确定是哪一个枚举类型,哪一个枚举对象,再通过字符串确定。
  10. 枚举练习题:
    (1)编写关于一个星期week的枚举代码,枚举值为英文名称的星期一到星期天,打印中文的格式的星期名称。
    (2)输出以下枚举类型对象的个数。
package com.briup.day06;
/*
 * 枚举练习
 */
public class EnumTest {
	public static void main(String[] args) {
		System.out.println(Week.Monday.name);
		System.out.println(Week.Tuesday.name);
		System.out.println(Week.Wednesday.name);
		System.out.println(Week.Thursday.name);
		System.out.println(Week.Friday.name);
		System.out.println(Week.Saturday.name);
		System.out.println(Week.Sunday.name);
		
		Season[] seasons = Season.values();
		System.out.println("Season类型对象的个数:"+seasons.length);
	}
}
//星期Week枚举类
enum Week {
	Monday("星期一"),
	Tuesday("星期二"),
	Wednesday("星期三"),
	Thursday("星期四"),
	Friday("星期五"),
	Saturday("星期六"),
	Sunday("星期天");
	public String name;
	Week(String name) {
		this.name=name;
	}
}
//季节Season枚举类
enum Season {
	SPRING,SUMMER,AUTUMN,WINTER;
}