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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙玉伟 黑马帝   /  2012-1-17 09:48  /  2066 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 西伯利亚、狼 于 2012-1-17 10:53 编辑

看了交通灯管理,我看到了张孝祥老师用枚举写了,12个方向,我就是想问,枚举一般在什么情况下用比较合适!!!

4 个回复

倒序浏览
首先你要了解枚举(enum)的概念,java.lang.Enum是JDK5.0版本新加入的类,我们所编写的枚举其实都是隐式的继承自它,既然它是类,因此会有类型安全性、编译期检查以及可将它用在变量声明中的能力。这可以把使用数值或字符串来模拟含义的常量彻底打败,枚举中的各个实例(值)都是被隐式声明为public static final的,而且你也不能将这些声明手动赋予给实例(值),编译器会自己处理。
枚举的应用场合:在你需要一个仅允许特定数据类型值的有限集合,在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。
如果搞懂了这些问题,你就应该自己可以判断你的程序里需要不需要它,大量应用枚举这件事本身并不会引发什么(性能问题),要看你应用的场景是否合适,sun搞了enum必然有其道理,原则上讲JDK5以后都是为了简化开发,enum也是一样的,只要你认为使用了enum会为你编程带来便捷,那么你还考虑什么,程序员不要被业界那些条条框框所束缚,一动手就一大堆的面向对象思想,设计模式的,打个比方,你天天要去一个地方,建议你多试几条路,这样你就知道哪条最近了。
一起学习了~

评分

参与人数 1技术分 +1 收起 理由
祁焱 + 1 赞一个!

查看全部评分

回复 使用道具 举报
呵呵,谢谢了,那个高新技术里面有了,刚好看到。。。。。

点评

一步一个脚印,踏踏实实地学习,别太在乎分数了技术分慢慢积累,发技术贴要慎重别遇到问题就发帖,先从从论坛里搜素一下你要问的问题,加油!  发表于 2012-1-17 12:29

评分

参与人数 1技术分 +1 收起 理由
祁焱 + 1 淡定

查看全部评分

回复 使用道具 举报
西伯利亚、狼 发表于 2012-1-17 10:17
呵呵,谢谢了,那个高新技术里面有了,刚好看到。。。。。

谢谢。版主。。。
回复 使用道具 举报
枚举:有枚举 (enumeration)、枚举(enum)和枚举(pascal),用的最多是枚举(enum)。

枚举 (enumeration):
值类型的一种特殊形式,它从 System.Enum 继承,并为基础基元类型的值提供备用名称。枚举类型有名称、基础类型和一组字段。基础类型必须是一个内置的有符号(或无符号)整数类型(如 Byte、Int32 或 UInt64)。字段是静态文本字段,其中的每一个字段都表示常数。所使用的语言给每个字段都分配一个基础类型的特定值。

枚举(enum):枚举在C/C++中,是一个被命名的整型常数的集合, 枚举在日常生活中很常见。
  例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,
  SATURDAY, 就是一个枚举。
  枚举的说明与结构相似, 其形式为:
  enum 枚举名{
  标识符[=整型常数],
  标识符[=整型常数],
  ...
  标识符[=整型常数],
  } 枚举变量;

  如果枚举没有初始化, 即省掉"=整型常数"时, 则从第一个标识符开始, 顺
  次赋给标识符0, 1, 2, ...。但当枚举中的某个成员赋值后, 其后的成员按依次
  加1的规则确定其值。
  例如下列枚举说明后, x1, x2, x3, x4的值分别为0, 1, 2, 3。
  enum Num{x1, x2, x3, x4}x;
  当定义改变成:
  enum Num
  {
  x1,
  x2=0,
  x3=50,
  x4,
  }x;
  则x1=0, x2=0, x3=50, x4=51
  注意:
  1. 枚举中每个成员(标识符)结束符是",", 不是";", 最后一个成员可省略
  ","。
  2. 初始化时可以赋负数, 以后的标识符仍依次加1。
  3. 枚举变量只能取枚举说明结构中的某个标识符常量。
  例如:
  enum Num
  {
  x1=5,
  x2,
  x3,
  x4,
  };
  enum strig x=x3;
  此时, 枚举变量x实际上是7。

枚举(pascal):用于处理非数值的数据。
例如:性别、月份、星期几、颜色、单位名、学历、职业等,都不是数值数据。 在其它程序设计语言中,一般用一个数值来代表某一状态,这种处理方法不直观,易读性差。如果能在程序中用自然语言中有相应含义的单词来代表某一状态,则程序就很容易阅读和理解。也就是说,事先考虑到某一变量可能取的值,尽量用自然语言中含义清楚的单词来表示它的每一个值,这种方法称为枚举方法,用这种方法定义的类型称枚举类型。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马