基本使用
//枚举类的定义
public enum Color{
RED,BLUE,GREEN;//表明只能为三个值其中之一
}
//相关使用
Color colorEnum;
colorEnum = Color.RED;
// colorEnum = 2;//会报错
System.out.println(colorEnum);
System.out.println(colorEnum.name());//获取此枚举实例的名称
System.out.println(colorEnum.toString());//与name方法相似
System.out.println(Color.valueOf(Color.class,"RED"));//获取指定枚举类的枚举值
System.out.println(Arrays.toString(Color.values()));//获取所有枚举内容
System.out.println(colorEnum.ordinal());//返回索引值
EnumSet和EnumMap
EnumSet<Color> set = EnumSet.allOf(Color.class);//将一个枚举类全部填充到集合中
for(Color c:set){
System.out.println(c);
}
EnumMap<Color,String> map = new EnumMap<Color, String>(Color.class);
map.put(Color.BLUE,"blue");
带构造方法的枚举
public enum Color {
RED(10),//会调用构造方法
GREEN(5),
BLUE;
private int color;
private Color(){
//只能使用private修饰
System.out.println("无参构造器");
}
private Color(int color){
this.color = color;
System.out.println("有参构造器");
}
}
枚举实现接口,抽象方法
interface info{
public int getColor();
}
//定义一个枚举类型
public enum Color implements info{
RED(10){
@Override
public String getColor2() {
return "red";
}
},//会调用构造方法
GREEN(5){
@Override
public String getColor2() {
return "green";
}
},
BLUE{
@Override
public String getColor2() {
return "blue";
}
};
private int color;
private Color(){
//只能使用private修饰
System.out.println("无参构造器");
}
private Color(int color){
this.color = color;
System.out.println("有参构造器");
}
@Override
public int getColor() {
return color;
}
public abstract String getColor2();
}
枚举类的单例模式
public enum Singleton{
SINGLETON;
public void method(){
System.out.println("method");
}
}