1、枚举的定义
//定义枚举
public enum EnumPet {
Dog,
Cat,
Bear,
Pig
}
2、枚举的遍历
//测试枚举
public class EnumPetTest {
public static void main(String[] args) {
for (EnumPet enumPet : EnumPet.values()) {
System.out.println("name:" + enumPet.name() + " value:" + enumPet.toString() + " class:" + enumPet.getDeclaringClass());
}
}
}
//输出结果
name:Dog value:Dog class:class com.whw.EnumPet
name:Cat value:Cat class:class com.whw.EnumPet
name:Bear value:Bear class:class com.whw.EnumPet
name:Pig value:Pig class:class com.whw.EnumPet
3、枚举的常用方法
EnumPet enumPetArray[] = EnumPet.values();//获取枚举项数组
EnumPet enumPet = EnumPet.valueOf("Cat");//根据枚举项全名,获取枚举项
String name=enumPet.name();//获取枚举项的名称
String petString =enumPet.toString();//获取枚举项的值
String className=enumPet.getDeclaringClass().getName();//获取枚举项所在类的名称
int result =enumPet.compareTo(EnumPet.Dog);//对两个枚举项的排序顺序比较
int order = enumPet.ordinal();//获取枚举项的顺序
4、使用switch
public static void printPet(EnumPet enumPet) {
switch (enumPet) {
case Cat:
System.out.println("小猫");
break;
case Dog:
System.out.println("小狗");
break;
case Pig:
System.out.println("小猪");
break;
case Bear:
System.out.println("小熊");
break;
}
}
5、向枚举项添加自定义值和方法
public enum EnumWeek {
MON("星期一",1),
TUE("星期二",2),
WED("星期三",3),
THU("星期四",4),
FRI("星期五",5),
SAT("星期六",6),
SUN("星期日",7) {
};
private String value;
private int num;
EnumWeek(String value,int num) {
this.value = value;
this.num=num;
}
//重载枚举的toString方法
@Override
public String toString() {
return "value:" + value + " num:" + num;
}
public String getValue(){
return value;
}
public int getNum(){
return num;
}
}
public class TestEnum {
public static void main(String[] args) {
//遍历枚举
for (EnumWeek enumWeek : EnumWeek.values()) {
System.out.println("name:" + enumWeek.name() + " value:" + enumWeek.toString() + " class:" + enumWeek.getDeclaringClass());
}
//使用自定义方法
System.out.println(EnumWeek.FRI.getValue());//星期五
System.out.println(EnumWeek.FRI.getNum());//5
}
}
//输出结果
name:MON value:value:星期一 num:1 class:class com.whw.EnumWeek
name:TUE value:value:星期二 num:2 class:class com.whw.EnumWeek
name:WED value:value:星期三 num:3 class:class com.whw.EnumWeek
name:THU value:value:星期四 num:4 class:class com.whw.EnumWeek
name:FRI value:value:星期五 num:5 class:class com.whw.EnumWeek
name:SAT value:value:星期六 num:6 class:class com.whw.EnumWeek
name:SUN value:value:星期日 num:7 class:class com.whw.EnumWeek
6、枚举实现接口
//定义接口
public interface IBehaviour {
void print();
}
//定义枚举
public enum EnumColor implements IBehaviour {
Red("红色", 1),
Green("绿色", 2),
Blue("蓝色", 3);
private String name;
private int index;
EnumColor(String name, int index) {
this.name = name;
this.index = index;
}
//实现接口
@Override
public void print() {
System.out.println(this.name + " " + this.index);
}
}
//测试枚举
public class TestEnumColor {
public static void main(String[] args) {
EnumColor enumColor=EnumColor.Blue;
enumColor.print();//蓝色 3
}
}