黑马程序员技术交流社区

标题: 枚举的疑惑 [打印本页]

作者: 程有愿    时间: 2012-8-15 19:04
标题: 枚举的疑惑
 虽然enum不可以有public的构造函数,但是我们还是可以定义private的构造函数,在enum内部使用。还是用Color这个例子。     
   
     public    enum    Color    {     
     Red("This    is    Red"),     
     Green("This    is    Green"),     
     Blue("This    is    Blue");     
   
     private    String    desc;     
   
     Color(String    desc){     
     this.desc    =    desc;     
     }     
   
     public    String    getDesc(){     
     return    this.desc;     
     }     
   
     }     
为什么说了不能由public修饰,下面还有构造方法,还有就是枚举里的接口是怎么回事,还有就是张老师说枚举里面用到了内部类,也不太明白,有谁能给个例子,,谢谢!

作者: 陈红建    时间: 2012-8-15 19:16
枚举类型是单例模式的。你需要实例化一次,然后再整个程序之中就可以调用他的方法和成员变量了。
枚举类型使用单例模式是因为他的值是固定的,不需要发生改变。

枚举类也是一个类当然可以实现一个接口也可以在其中定义构造方法,方法,和内部类


Enum要点

1、在程序中可以使用一个枚举类来指定对象的取值范围。

2、在Java中使用enum关键字定义一个枚举类,每一个枚举类都是继承Enum类。

3、在枚举中可以通过values()方法取得枚举中的全部内容。

4、在枚举类中可以定义构造方法,但在设置枚举范围时必须显式地调用构造方法。

5、所有的枚举类都可以直接使用Comparable进行排序,因为Enum类实现了Comparable接口。

6、Java类集中提供枚举的支持类是EnumMap、EnumSet。

7、一个枚举类可以实现一个接口或者直接定义一个抽象方法,但是每个枚举对象都必须
分别实现全部的抽象方法。

作者: 陈红建    时间: 2012-8-16 13:52
申请加分
作者: 程有愿    时间: 2012-8-16 15:32
不给我加分  ~~~~(>_<)~~~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2