定义枚举使用关键字 enum
public enum WeekDay{
SUN,MON,TUE,WED,THI,FRI,SAT 后面可能有;也可以没有
}
WeekDay weekday2=WeekDay.SAT;
我们给枚举类定义变量的时候,只能使用枚举类中所定义的那些元素
SAT是一个对象,枚举就相当于是一个类,枚举中的一个元素就相当于是
这个类搞出来的对象。
final 和static 谁放在前面,谁放在后面都可以。
枚举自动帮我们实现了toString方法,
枚举中常用的方法:
name,自己的名字 是它在类名常量名
ordinal 自己排行
getClass 得到自己的类,得到WeekDay类
看看里面有什么静态方法?
valueOf: 别人传递过来一个"SUN"
我们要在后台把它给变成WeekDay的实例对象
//把字符串变成枚举所对应的那个元素
values:返回是一个数组
把枚举中的每一个元素装到这个数组
即返回枚举中的所有的元素,返回的是一个数组
length返回的是数组的长度
=====================================================================
枚举类的构造方法
//枚举也是一个类,它没有构造方法,我们想为枚举构造一个构造方法
元素列表必须位于所有的元素之前,即方法,成员变量,构造方法和其它信息
都必须元素列表之后。如果元素列表之后,有其它的内容,元素列表必须要使用
;
对于枚举的构造方法:必须是私有的权限 因为构造方法是私有的,我们不能让
别人创建枚举类的对象
private WeekDay(){}
private WeekDay(int day){}
只要用到了类,它里面的静态代码都会去执行,它等于是静态的成员变量。所以
它执行了,构造方法就执行了。
在元素的后面(1)指定参数列表 :这里是调用有参数的构造方法
能否()调用没有参数的构造方法
在创建枚举元素的时候,后面带()就可以指定在创建枚举元素的实例对象的时候
调用的是枚举类中的哪个构造方法