java5 学习笔记3——Enum

原创 2007年09月19日 00:01:00


 我觉得Enum的基本功能,就是作为final static字段的替代品吧,的确让代码抽象程度提高了,也方便维护了,不过Enum的功能绝不限于此,既然是在新时期下出现的枚举,自然要比起C++前辈有突破才不会挨骂


 一开始用Enum,潜意识里总是和final static和C++的联系起来,其实除了功能有些相似外,Java的Enum有很多功能亮点,不过受到传统思维影响,最容易犯的一个错误是:把Enum的每个枚举值与整数联系起来(C的思维)。虽然Enum的确有ordinal方法,可以返回Enum中每个值的顺序(从零开始),但不代表每个值都是对应整数,两者没什么关系。同时Enum本身就是一种类型,不能总是将其与int或者String这些“底层实现”混在一起(或许编译成字节码后真的是某种int?不过那不是我们考虑的事情)


 此外,Enum可以有方法,可以实现某个接口,对应Enum的每个值还可以定义不同的方法内容...但是Enum不能被继承,而且,你写的每个Enum,都是隐含的继承自java.lang.Enum,这个类不能被你显示的继承,也就是说,除了要创建新的Enum,这个类你基本上不用理会


 我觉得Enum最有趣的地方、也是比较有特色的地方在于它和Map与Set之间的互操作。collection新加了一个EnumMap和EnumSet,可以将两者高效地结合起来,借助Enum对值的限制,可以很方便地让Map和Set也沾点光。
EnumSet有很多静态方法,可以生成EnumSet,比如allOf(Class element),可以生成包含指定类型的所有元素的EnumSet,再比如complementOf( EnumSet e),可以生成一个新的EnumSet,里面包含和“e”关联的Enum中,没有包含在“e”的枚举值,看看complement的英文意思就可以明白了 

C++11学习笔记(3)—— enum

1.简介 以往的enum类型将枚举成员的作用域暴露在枚举变量之外,用户不需要指定枚举类型就可以直接使用枚举的内容,这就有可能会造成名字的冲突,为了解决该你问题,C++11引入了强类型的枚举类型(st...

Java web学习笔记——入门2011/3/5

Java web学习笔记——入门2011/3/5 本文内容遵从CC版权协议转载请注明出自WanderingDream总目录地址:http://blog.csdn.net/WanderingKnight...

c语言学习笔记(5)enum和typedef分析

摘要:总结了enum和typedef的含义,以及他们和define的区别。 一、enum是什么     enum是一种自定义类型,其默认的常量在前一个值的基础上加1,如果不给默认的常量赋值...

python3学习笔记:枚举enum

1. 枚举的定义首先,定义枚举要导入enum模块。 枚举定义用class关键字,继承Enum类。 用于定义枚举的class和定义类的class是有区别【下一篇博文继续分享】。  示例代码:from e...

Thinking In Java学习笔记之enum状态机

输入的枚举: package com; import java.util.Random; public enum Input{ NICKEL(5),DIME(10),QUARTER(25),DO...

14. JAVA 枚举(Enum、类集EnumMap&EnumSet 、实现接口、定义抽象方法) ----- 学习笔记

本章目标: 1

java学习笔记之枚举类enum(转载)

原文链接:http://www.cnblogs.com/hemingwang0902/archive/2011/12/29/2306263.html java enum(枚举)使用详解 + 总结enu...
  • tjkj10
  • tjkj10
  • 2016年02月12日 00:34
  • 184

java学习笔记之 --------枚举(enum)

enum枚举类型是JAVA SE 5.0 以后的版本新定义出来的, 在此版本之前,有个常用的方法来做枚举类,  这个是视频中学到的。。。 class WeekDay{ public stat...

java之枚举类 Enum学习笔记

某些情况下,一个类的对象是有限并且固定的,比如季节类,只有四个对象。这种实例有限并且固定的类,为枚举类。 如何手动实现一个枚举类? 规则如下:      (1)通过private将构...

Lucene5 学习笔记(3) —— 重用 IndexReader 和常用的搜索方法

02_lucene简介和搜索初步.avi
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java5 学习笔记3——Enum
举报原因:
原因补充:

(最多只允许输入30个字)