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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 浪无痕-陈文坤 中级黑马   /  2013-8-4 11:21  /  1439 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨兴庭 于 2013-8-4 20:09 编辑

enum类型存在有什么意义,它体现了什么思想?

评分

参与人数 1黑马币 +3 收起 理由
杨兴庭 + 3

查看全部评分

8 个回复

正序浏览
wang100753 发表于 2013-8-4 13:43
enum的简单应用,以下简洁的代码已经包括enum所提供的绝大部分功能

谢谢!!!
回复 使用道具 举报
米中之玉 发表于 2013-8-4 13:29
我们知道,类都是创建对象用的。而根据类所对应的功能不同,
类所能实例化的对象数量也有要求:
1、有的类可 ...

谢谢!顶顶!
回复 使用道具 举报
手心里的温柔 发表于 2013-8-4 12:39
Enum一般用来表示一组相同类型的常量。如日期、颜色等。
对这些属性用常量的好处是显而易见的,不仅可以保 ...

谢谢!!!
回复 使用道具 举报
Jiewin 发表于 2013-8-4 12:30
enum的存在,意义在于限制了元素的取值,大大的提高了统一性

谢谢!!!
回复 使用道具 举报
enum的简单应用,以下简洁的代码已经包括enum所提供的绝大部分功能
  1. import java.util.EnumMap;  
  2. import java.util.EnumSet;  
  3. public class EnumTest {  
  4.     // 定义一个enum枚举类型,包括两个实例ON,OFF   
  5.     public enum State {  
  6.         ON, OFF  
  7.     };  
  8.     // 测试函数   
  9.     public static void main(String[] args) {  
  10.         // 直接变量enum   
  11.         for (State s : State.values())  
  12.             System.out.println(s.name());  
  13.         // switch与enum的结合使用   
  14.         State switchState = State.OFF;  
  15.         switch (switchState) {  
  16.         case OFF:  
  17.             System.out.println("OFF");  
  18.             break;  
  19.         case ON:  
  20.             System.out.println("ON");  
  21.             break;  
  22.         // EnumSet的使用   
  23.         EnumSet<State> stateSet = EnumSet.allOf(State.class);  
  24.         for (State s : stateSet) {  
  25.            System.out.println(s);  
  26.         }  
  27.         // EnumMap的使用   
  28.         EnumMap<State,String> stateMap = new EnumMap<State,String>(State.class);  
  29.         stateMap.put(State.ON, "is On");  
  30.         stateMap.put(State.OFF, "is off");  
  31.         for (State s : State.values()) {  
  32.             System.out.println(s.name() + ":" + stateMap.get(s));  
  33.         }  
  34.     }  
  35. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
我们知道,类都是创建对象用的。而根据类所对应的功能不同,
类所能实例化的对象数量也有要求:
1、有的类可以随意创建对象,比如学生;
2、有的类只能创建一个对象;
3、有的类只能创建有限个对象。比如一周只有七天,所以只能有7个对象。

那么对应的
1、只要有共有的构造函数就行,也就是普通类。
2、将所有构造函数私有化,向外提供能够返回该类类型的公共方法,我们称之为“单例”。
3、既然对象不是无限个,那么构造函数就必须私有;但对象又多于一个,则必须在内部实现定义对象。
而且该类都有自己独特的特点,为了与其他类加以区分,就将给种类型命名为 enum。


我是这么理解的,希望有帮助。

类与对应对象的多少.jpg (39.04 KB, 下载次数: 19)

类与对应对象的多少.jpg

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
Enum一般用来表示一组相同类型的常量。如日期、颜色等。
对这些属性用常量的好处是显而易见的,不仅可以保证单例,且比较时候可以用”==”来替换equals。是一种好的习惯。
JDK1.5之前没有Enum这个类型,那时候 一般用接口常量来替代。有了JavaEnum之后,可以更贴近的表示这种常量。


希望能帮到你
回复 使用道具 举报 1 0
enum的存在,意义在于限制了元素的取值,大大的提高了统一性
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马