Java枚举是一个特殊的类,一般表示一组常量。每个常量用逗号隔开。
1、枚举的定义
例如:定义一个星期的枚举:(枚举中的个量都是常量因此用大写字母)
枚举:
public enum Week {
SUN,MON,TUES,WED,THUR,FRI,SAT
}
测试代码:
public class Test {
public static void main(String[] args) {
Week w1=Week.SUN;
Week w2=Week.MON;
Week w3=Week.TUES;
Week w4=Week.WED;
Week w5=Week.THUR;
Week w6=Week.FRI;
Week w7=Week.SAT;
System.out.println(w1+"\n"+w2+"\n"+w3+"\n"
+w4+"\n"+w5+"\n"+w6);
}
}
运行结果
SUN
MON
TUES
WED
THUR
FRI
2、内部类中使用枚举
public class Test2 {
enum Week{
SUN,MON,TUES,WED,THUR,FRI,SAT
}
public static void main(String[] args) {
Week w1=Week.SUN;
Week w2=Week.MON;
Week w3=Week.TUES;
Week w4=Week.WED;
Week w5=Week.THUR;
Week w6=Week.FRI;
Week w7=Week.SAT;
System.out.println(w1+"\n"+w2+"\n"+w3+"\n"
+w4+"\n"+w5+"\n"+w6);
}
}
运行结果:
SUN
MON
TUES
WED
THUR
FRI
每个枚举都是通过class在内部类实现的,且所有的枚举都是公共静态常量。
2、枚举的迭代
使用增强for迭代:
public class Test2 {
enum Week{
SUN,MON,TUES,WED,THUR,FRI,SAT
}
public static void main(String[] args) {
for (Week week:Week.values()){//增强for
System.out.println(week);
}
}
}
运行结果:
SUN
MON
TUES
WED
THUR
FRI
SAT
3、switch中应用枚举
import java.util.Scanner;
public class Test2 {
enum Week{
SUN,MON,TUES,WED,THUR,FRI,SAT
}
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.print("请输入你喜欢的日期:");
String s=input.next();
Week w=Week.valueOf(s);
switch (w){
case SUN:
System.out.println("你喜欢星期日");
break;
case MON:
System.out.println("你喜欢星期一");
break;
case TUES:
System.out.println("你喜欢星期二");
break;
case WED:
System.out.println("你喜欢星期三");
break;
case THUR:
System.out.println("你喜欢星期四");
break;
case FRI:
System.out.println("你喜欢星期五");
break;
case SAT:
System.out.println("你喜欢星期六");
break;
}
}
}
运行结果:
请输入你喜欢的日期:WED
你喜欢星期三