活动地址:CSDN21天学习挑战赛
一、什么是枚举类
C语言中有枚举类型的变量。
枚举类其实是一些符号常量集。直白点说:枚举定义了一些符号,这些符号的本质就是int类型的常量,每个符号和一个常量绑定。这个符号就表示一个自定义的一个识别码,编译器对枚举的认知就是符号常量所绑定的那个int类型的数字。
一般情况下我们都不明确指定这个符号所对应的数字,而让编译器自动分配。
编译器自动分配的原则是:从0开始依次增加。如果用户自己定义了一个值,则从那个值开始往后依次增加。
二、枚举类的定义
public enums 枚举名
{
枚举元素1,枚举元素2,…… //注意,各元素之间用逗号隔开
}; //注意,末尾有分号;
三、枚举类与普通类
枚举类与普通类的区别:
1.枚举类可以实现一个或多个接口,使用enum定义的枚举类默认继承java.lang.Enum类,而不是默认继承Object类,因此枚举类不能显示继承其他父类,其中 java.lang.Enum类实现了java.lang.Serializable和java.lang.Comparable两个接口。
2.使用enum定义、非抽象的枚举类默认会使用final修饰,因此枚举类不能派生子类。
3.枚举类的构造器只能使用private访问控制符,如果省略了构造器的访问控制符,则默认使用private修饰;如果强制指定访问控制符,则只能指定private修饰符。
4.枚举类的所有实例必须在枚举类的第一行显示列出,否则这个枚举类永远不能产生实例。列出这些实例时,系统会自动添加public static final修饰,无需我们显式添加。
枚举类提供了一个values()方法,该方法可以很方便的遍历所以枚举值。