枚举类型本质上也是一种类,只不过是这个类的对象是固定的几个,而不能随意让用户创建。
jdk5.0之前
实现枚举效果:
1.构造器私有(枚举类中的成员个数固定,防止对外造对象)
2.显示提供有限的值 (public static final修饰)public static final Season SPRING = new Season("春天", "春暖花开");
jdk5.0之后
jdk5之后的枚举 大大简化了枚举成员的创建过程
注意:
1. 枚举类中的属性信息 需要放到 枚举对象的下边
2.枚举中的方法
Season[] values = Season.values();(获取所有枚举成员信息)
Season spring = Season.valueOf("SPRING");
3.构造器默认私有的4.枚举类 能否实现接口
可以实现接口 且 各个枚举对象可以进行自定义处理5.当完成自定义枚举类型创建后 会默认继承 Enum 因此 枚举类型 不能再去继承其他类型(枚举类型默认背后有一个Enum爹支持)
public enum Gender implements run {
MAN("男人","扛事情的"){
@Override
public void walk() {
System.out.println("走的快");
}
},WOMAN("女人","需要好好呵护的"){
@Override
public void walk() {
System.out.println("小碎步");
}
};
private String name;
private String desc;
Gender(String name, String desc) {
this.name = name;
this.desc = desc;
}
private Gender() {
}
}
interface run{
public abstract void walk();
}
switch 表达式类型:
表达式类型 : 只能为 byte short int char 及其对应的包装类型
枚举类型
String类型
其他类型完全不支持 一定要记住