文章目录
- 1. 枚举例子
- 2. 接口的实现
- 3. 枚举中定义抽象方法
enum 定义了枚举类型,其继承于 Enum 枚举类
1. 枚举例子
代码语言:javascript复制import java.util.EnumMap;
import java.util.EnumSet;
import java.util.Iterator;
import java.util.Map;
class EnumDemo {
public enum Color{
RED, GREEN, BLUE
}
public static void main(String[] args){
Color c = Color.RED;
System.out.println(c);
c = Color.GREEN;
System.out.println(c);
c = Color.BLUE;
System.out.println(c);
// 可用于 switch
switch(c){
case RED:{
System.out.println("红色");
break;
}
case GREEN:{
System.out.println("绿色");
break;
}
case BLUE:{
System.out.println("蓝色");
break;
}
default:{
System.out.println("nothing");
}
}
//
for(Color col : Color.values())
System.out.println(col.name() "--->" col.ordinal());
// RED--->0
// GREEN--->1
// BLUE--->2
// EnumMap
EnumMap<Color, String> eMap = new EnumMap<Color, String>(Color.class);
eMap.put(Color.RED, "红色");
eMap.put(Color.GREEN, "绿色");
eMap.put(Color.BLUE, "蓝色");
for(Map.Entry<Color, String> me : eMap.entrySet()){
System.out.println(me.getKey() " : " me.getValue());
}
// RED : 红色
// GREEN : 绿色
// BLUE : 蓝色
// EnumSet
EnumSet<Color> eSet = EnumSet.allOf(Color.class);//全部内容设置到集合
Iterator<Color> iter = eSet.iterator();
while(iter.hasNext()){
System.out.println(iter.next());
}
// RED
// GREEN
// BLUE
}
}
代码语言:javascript复制enum Color{
RED("红色"), GREEN("绿色"), BLUE("蓝色");
private String name;
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
Color (String name){ // 枚举的构造不能为 public
this.setName(name);
}
}
class test7{
public static void main(String[] args) {
for(Color col : Color.values()) {
System.out.println(col.name() "--->" col.ordinal() " " col.getName());
}
}
}
输出:
代码语言:javascript复制RED--->0 红色
GREEN--->1 绿色
BLUE--->2 蓝色
2. 接口的实现
- 每个元素都要实现
interface Info{
public String getColor();
}
enum Color implements Info{
RED{
public String getColor(){
return "红色";
}
},
GREEN{
public String getColor(){
return "绿色";
}
},
BLUE{
public String getColor(){
return "蓝色";
}
};
}
class test7{
public static void main(String[] args) {
for(Color col : Color.values()) {
System.out.println(col.name() "--->" col.ordinal() " " col.getColor());
}
}
}
输出:
代码语言:javascript复制RED--->0 红色
GREEN--->1 绿色
BLUE--->2 蓝色
3. 枚举中定义抽象方法
- 每个元素都要实现抽象方法
enum Color {
RED{
public String getColor(){
return "红色";
}
},
GREEN{
public String getColor(){
return "绿色";
}
},
BLUE{
public String getColor(){
return "蓝色";
}
};
public abstract String getColor();
}
class test7{
public static void main(String[] args) {
for(Color col : Color.values()) {
System.out.println(col.name() "--->" col.ordinal() " " col.getColor());
}
}
}