| 
 关于枚举 永远不能直接调用过一个枚举构造函数. 可以为构造函数定义多个参数,并且可以重载枚举构造函数,就像可以重载一个正常的类构造函数一样. 枚举指定了一个常量值列表,它们可以赋予某个特殊类型. 枚举不是String或int;枚举常量的类型是枚举类型. 枚举可在类外部或内部声明,但不能在方法中声明. 声明在类外部的枚举不能被标识为static\fianl\abstract\protected\private. 枚举可以包含构造函数\方法\变量和常量类体. 枚举常量可以使用语法BIG(8)把参数传递给枚举构造函数,其中把int型字面值8传递给枚举构造函数. 枚举构造函数可以带有参数,并且可以重载. 永远不能直接在代码中调用枚举构造函数.它们总是在初始化枚举时自动调用的. 枚举声明的末尾可以选择加分号.
  public class TestEnum {  public static void main(String[] args) {   AllColor ac = AllColor.Red;   AllColor[] acs =AllColor.values();   ac.setName("red");   System.out.println(ac.getName());   System.out.println(ac.getClass());   ac.test();   //ac.test1();//只能调用ENUM里的方法,如果是抽象方法,必学实现后才能调用。  } } enum AllColor {  // Red,Green,Blue;  Red("a") {//是AllColor的实现类   public void test() {    System.out.println("red");   }   public void test1() {    System.out.println("red1");   }  },  Green("a") {   public void test() {    System.out.println("Green");   }  },  Blue("a") {// 是AllColor的实现类,这里的类会调用匹配的构造器,如果没有匹配的构造器就会报错。   public void test() {    System.out.println("Blue");   }  };  AllColor(String name) {   this.name = name;  }  private String name;  public String getName() {   return name;  }  public void setName(String name) {   this.name = name;  }  abstract void test(); }  |