print(c);
}
}
public static void print(Color color){
switch(color){
case RED:{
System.out.println("红色");
break;
}
case GREEN:{
System.out.println("绿色");
break;
}
case BLUE:{
System.out.println("蓝色");
break;
}
default:{
System.out.println("未知颜色");
}
}
}
}
Enum
从前面已经清楚的知道,使用enum关键字可以定义一个枚举,实际上此关键字表示的是 java.lang.Enum类型,即:使用enum声明的枚举类型,就相当于定义一个类,而此类则默认继承java.lang.Enum类。
java.lang.Enum类的定义如下:
[java]
public abstract class Enum
extends Object
implements Comparable
public abstract class Enum
extends Object
implements Comparable
枚举类的主要方法
Enum类的构造方法:
[java]
protected Enum(String name, int ordinal)
protected Enum(String name, int ordinal)
构造方法中接收两个参数,一个表示枚举的名字,一个表示枚举的序号。
[java]
for(Color c:Color.values()){
System.out.println(c.name()+"----"+c.ordinal());
}
for(Color c:Color.values()){
System.out.println(c.name()+"----"+c.ordinal());
}
希望可以使用一些文字表示颜色的信息,则可以按照最早的Color类的形式,在枚举中定义属性及自己的构造方法,但是一旦定义有参构造之后,在声明枚举对象的时候就必须明确的调用构造方法,并传递参数。
[java]
package com.itmyhome;
enum Color {
RED("红色"), GREEN("绿色"), BLUE("蓝色"); //传入参数
private String name;
private Color(String name){ //定义构造方法
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class T {
public static void main(String[] args) throws Exception{
for(Color c:Color.values()){
System.out.println(c.ordinal()+"----"+c.name()+"----"+c.getName());
}
}
}
package com.itmyhome;
enum Color {
RED("红色"), GREEN("绿色"), BLUE("蓝色"); //传入参数
private String name;
private Color(String name){ //定义构造方法
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class T {
public static void main(String[] args) throws Exception{
for(Color c:Color.values()){
System.out.println(c.ordinal()+"----"+c.name()+"----"+c.getName());
}
}
}
java.util.EnumSet和java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的 key是enum类型,而value则可以是任意类型