jdk1.5之前是自定义枚举类(就是私有化参数,私有化构造方法,然后在类中定义几个常量的本类实体)
public class EnumTool {
private final String name;
private final Integer type;
public EnumTool(String name, Integer type) {
this.name = name;
this.type = type;
}
public static final EnumTool ENUM_TOOL=new EnumTool("春",1);
public static final EnumTool ENUM_TOOL2=new EnumTool("夏",2);
public static final EnumTool ENUM_TOOL3=new EnumTool("秋",3);
public static final EnumTool ENUM_TOOL4=new EnumTool("冬",4);
public String getName() {
return name;
}
public Integer getType() {
return type;
}
@Override
public String toString() {
return "EnumTool{" +
"name='" + name + '\'' +
", type=" + type +
'}';
}
}
jdk1.5以后提供了枚举类(只能提供get方法,并且定义的枚举类默认继承enum)
public enum EnumTool {
//创建枚举类对象多个对象用逗号隔开最后一个用分号
CHUN("春",1),
XIA("夏",2),
QIU("秋",3),
DONG("冬",4);
EnumTool(String name, Integer type) {
this.name = name;
this.type = type;
}
private String name;
private Integer type;
public String getName() {
return name;
}
public Integer getType() {
return type;
}
}
枚举类的方法
values():可以获取枚举类中的对象集合
valueOf(“对象名”):根据输入的对象名来获取对象(如果提供的对象名没有就报错)
枚举类实现接口
//枚举类实现接口并重写方法
//这个重写的方法是通用的
interface test{
void show();
}
public enum EnumTool implements test{
CHUN("春",1),
XIA("夏",2),
QIU("秋",3),
DONG("冬",4);
EnumTool(String name, Integer type) {
this.name = name;
this.type = type;
}
private String name;
private Integer type;
public String getName() {
return name;
}
public Integer getType() {
return type;
}
@Override
public void show() {
System.out.println("实现的接口方法并重写");
}
}
枚举类实现接口
//枚举类实现接口并重写方法
//为每个对象提供重写的方法
interface test{
void show();
}
public enum EnumTool implements test{
CHUN("春",1){
@Override
public void show() {
System.out.println(this.getName());
}
},
XIA("夏",2) {
@Override
public void show() {
System.out.println(this.getName());
}
},
QIU("秋",3) {
@Override
public void show() {
System.out.println(this.getName());
}
},
DONG("冬",4) {
@Override
public void show() {
System.out.println(this.getName());
}
};
EnumTool(String name, Integer type) {
this.name = name;
this.type = type;
}
private String name;
private Integer type;
public String getName() {
return name;
}
public Integer getType() {
return type;
}
}