public enum Color{
RED,BLUE,BLACK,YELLOWGREEN
}
1.enum很像特殊的class,实际上enum声明定义的类型就是一个类
2.这些类都是类库中Enum类的子类(java.lang.Enum<E>),它们继承了Enum中许多有用的方法
~ 枚举值都是public static final的,也就是常量,因此枚举类中的枚举值都应全部大写
~ 枚举类型是class,在枚举类型中有构造器,方法和字段.
~ 但枚举的构造器有很大的不同:
1.构造器只能在构造枚举值的时候被调用
2.构造器私有private,不允许有public构造器
~ 枚举可以在switch语句中使用
public class EnumDemo { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(Color.BLUE); Color[] colors = Color.values(); for(Color c:colors) {//另一种for循环格式:从枚举类型对象colors中依次赋给c System.out.println(c); } Person[] person = Person.values(); for(Person p:person) { System.out.println(p); } //***********switch用法**************** Person a = Person.p3; switch(a){ case p1: System.out.println(Person.p1); break; case p2: System.out.println(Person.p2); break; case p3: System.out.println(Person.p3); break; } } } //当jvm去加载使用枚举类的时候,会预先创建多个枚举类型的对象供外界调用 //public static final Color RED = new Color(); //public static final Color BLUE = new Color(); //public static final Color YELLOW = new Color(); enum Color{ REA,BLUE,YELLOW;//枚举类型的值必须作为第一条语句出现 private Color(){//构造方法 System.out.println("构造方法");//有几个枚举值调用几次 } } //public static final Person p1 = new Person("张三",26); //public static final Person p2 = new Person("李四",23); //public static final Person p3 = new Person("王五",22); enum Person{ p1("张三",26),p2("李四",23),p3("王五",22); private String name; private int age; private Person(String name,int age) { this.name = name; this.age = age; } public String toString() { return name+age; } }