关于枚举 永远不能直接调用过一个枚举构造函数. 可以为构造函数定义多个参数,并且可以重载枚举构造函数,就像可以重载一个正常的类构造函数一样. 枚举指定了一个常量值列表,它们可以赋予某个特殊类型. 枚举不是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(); } |