A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程有愿 中级黑马   /  2012-8-15 19:04  /  1473 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

 虽然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修饰,下面还有构造方法,还有就是枚举里的接口是怎么回事,还有就是张老师说枚举里面用到了内部类,也不太明白,有谁能给个例子,,谢谢!

评分

参与人数 1技术分 +1 收起 理由
张立江 + 1 淡定~~~

查看全部评分

3 个回复

倒序浏览
枚举类型是单例模式的。你需要实例化一次,然后再整个程序之中就可以调用他的方法和成员变量了。
枚举类型使用单例模式是因为他的值是固定的,不需要发生改变。

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


Enum要点

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

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

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

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

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

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

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

评分

参与人数 1技术分 +1 收起 理由
张立江 + 1 很给力!

查看全部评分

回复 使用道具 举报
申请加分
回复 使用道具 举报
不给我加分  ~~~~(>_<)~~~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马