1、枚举类型的简单应用
1.1、简介/练习
测试练习:
//枚举类型的定义与应用
public enum Color{
red,green,blue;
}
@Test
public void testDemo1() {
//取出一个颜色值并输出
Color color=Color.blue;
System.out.println(color);
//遍历枚举类型的数据可以使用“枚举.values()”的形式,将该全部的枚举类型变为对象数组
//的形式,之后直接使用foreach进行输出。
for(Color c:Color.values()) {
System.out.println(c);
}
//通过switch 判断输出
for(Color c:Color.values()) {
switch(c) {
case red:
System.out.println("红色");
default:
break;
}
}
}
结果:
1.2、Enum类的详解
1.3、取得枚举的信息
// 2、为每一个枚举对象属性赋值
enum Color1 {
RED("红色"), GREEN("绿色"), BLUE("蓝色");
private Color1(String name) {
this.setName(name);
}
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
@Test
public void testDemo3() {
//遍历枚举
for(Color1 c:Color1.values()) {
//修改属性值
if("RED".equals(c.name())) {
c.setName("红色1号");
}
//输出枚举的全部内容
System.out.println(c.ordinal()+"-->"+c.name()+c.getName());
}
}
结果:
1.4、类集对枚举的支持———EnumMap、EnumSet
1.4.1、EnumMap
// 3、测试练习EnumMap
// 枚举类型的定义与应用
public enum Color {
red, green, blue;
}
@Test
public void testDemo4() {
Map<Color, String> colMap = new EnumMap<Color, String>(Color.class);
colMap.put(Color.red, "红色");
colMap.put(Color.blue, "蓝色");
colMap.put(Color.green, "绿色");
// 输出全部内容
System.out.println("输出全部内容");
for (Color c : colMap.keySet()) {
System.out.println(c.name() + "-->" + colMap.get(c));
}
}
结果:
1.4.2、EnumSet
测试与练习:
// 4、测试练习EnumSet
// 枚举类型的定义与应用
public enum Color {
red, green, blue;
}
@Test
public void testDemo5() {
// 初始化一个EnumSet集合 将枚举的全部类型设置到EnumSet对象中
EnumSet<Color> es = EnumSet.allOf(Color.class);
System.out.println(es);
// 初始化一个EnumSet集合 值设置一个枚举的类型到集合中
es = EnumSet.of(Color.blue);
System.out.println(es);
//复制集合的内容
EnumSet<Color> newEs=EnumSet.copyOf(es);
System.out.println(newEs);
}
}
结果:
1.4.3、让枚举类实现一个接口
枚举类也可以实现一个接口,但是因为接口中会存在抽象方法,多以枚举类中的每个对象都必须分别实现此抽象方法
//6、枚举类实现接口
//定义一个接口
interface Print{
public String getColor();
}
//枚举类实现接口
enum Color3 implements Print{
//枚举对象实现抽象方法
RED{
public String getColor() {
return "红色";
}
},
GREEN{
public String getColor() {
return "绿色";
}
},
BLUE{
public String getColor() {
return "蓝色";
}
};
}
@Test
public void testDemo6() {
//遍历输出枚举
for(Color3 c:Color3.values()) {
System.out.println(c.getColor()+"、");
}
}
结果: