如何实现枚举类:
1.不需要提供setXXX方法,因为枚举对象通常为只读。
2.对枚举的对象用final static 修饰。
3.枚举对象名一般情况为大写,按常量的命名规范.
4.枚举对象也可以有多个属性。
5.构造器被私有化
这是使用自定义类实现枚举:
class Season{
private String name;
private String description;
private String getName(){
return name;
}
public String getDescription(){
return description;
}
private Season(String name, String description) {
this.name = name;
this.description = description;
}
public final static Season SPRING = new Season("春天","暖");
public final static Season SUMMER = new Season("夏天","热");
public final static Season AUTUMN = new Season("秋天","凉");
public final static Season WINTER = new Season("冬天","冷");
}
通过enum关键字优化后:
enum Season{
SPRING("春天","暖"),SUMMER("夏天","热"),AUTUMN("秋天","凉"),WINTER("冬天","冷");
private String name;
private String description;
Season(String name, String description) {
this.name = name;
this.description = description;
}
public String getName() {
return name;
}
public String getDescription() {
return description;
}
}
二者的效果一样。
当我们使用enum关键字开发了一个枚举类,该枚举类会隐式的继承Enum类(可以使用javap反编译查看)。
传统的 public final static Season SPRING = new Season("春天","暖");简化为SPRING("春天","暖");意思是创建了SPRING这个枚举对象,并调用了两个参数的构造方法。
当使用无参的构造器创建了枚举对象,后面的小括号和实参列表可以省略,如SPRING;
当创建多个枚举对象时,用逗号相连,最后一个用分号结尾。
创建枚举对象的代码必须位于枚举类的第一行。
用enum关键字后,就不能继承其他的类了,因为enum默认继承Enum,但是可以去实现接口
enum 类名 implements 接口1,接口2{}
创建了枚举类,但又想创建枚举类对象,可以用枚举类名.属性名,然后让定义的枚举类对象指向它。
例如:Season season = Season.SPRING;这样就得到一个名为season,指向SPRING的一个Season类对象,可以使用season来调用该类方法
enum的常用方法:


其中compareTo方法返回的是两个枚举常量编号的差。未重写的toString方法和name方法一样。
4537

被折叠的 条评论
为什么被折叠?



