黑马程序员技术交流社区

标题: 大家好,我对枚举类不太理解谁能帮我讲讲? [打印本页]

作者: 習慣性、隱身    时间: 2013-10-19 20:42
标题: 大家好,我对枚举类不太理解谁能帮我讲讲?
本帖最后由 習慣性、隱身 于 2013-10-20 19:37 编辑

我在看张老师的交通灯和银行的系统的时候,用到了枚举类,但是我没接触过谁能帮我讲讲。

作者: 習慣性、隱身    时间: 2013-10-19 20:51
本帖最后由 習慣性、隱身 于 2013-10-20 18:23 编辑

    给自己顶起。。。
作者: 凝聚    时间: 2013-10-19 21:30
Tiger 中的一个重要新特性是枚举构造,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。
枚举变量声明与赋值: 定义枚举类型后,可以声明该枚举类型的变量,然后使用该变量存储枚举元素的数值.
枚举变量:指用枚举类型定义的变量.变量和参数都可以定义为枚举类型.过程的返回值也可以是枚举类型.
格式:dim 枚举变量名 as 枚举类型名
注意:尽管通常只将枚举元素数值赋给枚举类型的变量,但也可以将任何长整数数值赋给该变量.当对与枚举常数不相关的变量赋值时,Vb 不会产生错误.
枚举语句只能在模块级别中出现,不能用模块名来限定枚举类型.
(1)枚举的声明:枚举声明用于声明新的枚举类型。
访问修辞符 enum 枚举名:基础类型
{
} ;
基础类型必须能够表示该枚举中定义的所有枚举数值。枚举声明可以显式地声明 byte、sbyte、short、ushort、int、uint、long 或 ulong 类型作为对应的基础类型。没有显式地声明基础类型的枚举声明意味着所对应的基础类型是 int。
(2)枚举成员
枚举成员是该枚举类型的命名常数。任意两个枚举成员不能具有相同的名称。每个枚举成员均具有相关联的常数值。此值的类型就是枚举的基础类型。每个枚举成员的常数值必须在该枚举的基础类型的范围之内。
示例:public enum TimeofDay:uint
{
Morning=-3,
Afternoon=-2,
Evening=-1
} ;
产生编译时错误,原因是常数值 -1、-2 和 –3 不在基础整型 uint 的范围内。
(3)枚举成员默认值
在枚举类型中声明的第一个枚举成员它的默值为零。
以后的枚举成员值是将前一个枚举成员(按照文本顺序)的值加 1 得到的。这样增加后的值必须在该基础类型可表示的值的范围内;否则,会出现编译时错误。
示例:public enum TimeofDay:uint
{
Morning,
Afternoon,
Evening
} ;
Morning的值为0,Afternoon的值为1,Evening的值为2。
(4)为枚举成员显示赋值
允许多个枚举成员有相同的值.
没有显示赋值的枚举成员的值,总是前一个枚举成员的值+1.
示例
public enum Number
{
a=1,
b,
c=1,
d
} ;
b的值为2,d的值为2.
注意:以上枚举值都不能超过它的基础类型范围。否则会报错.
(5)枚举类型与基础类型的转换
基础类型不能隐式转换为枚举类型
枚举类型也不能隐式转换为基础类型
作者: 风悠悠    时间: 2013-10-19 21:36
对于现实中的一些常识或自己在设计中有不需要改变一类对象的属性,某类对象的属性,方法是可数且可知的,我们不需要对其进行改变的,就可以用这种方法去定义该类。用法:对类封装固定对象,其中的对象是有限的,属性可以固定设置,比如描写一个星期的类,从星期一到星期天,可以对星期一设一个英语属性为Monday,是一个星期中的第一天,星期二为Tuesday,是一个星期的第二天,依此可设置完其他五天,这样,封装星期的这个类就很明了,实用了
作者: To    时间: 2013-10-20 19:09
楼主你好,如果问题已解决请将帖子状态修改为提问结束,如果未解决请继续提问,谢谢合作
如果不会修改请看解释帖:http://bbs.itheima.com/thread-89313-1-1.html




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