一、枚举类型
存放一组常用常量
枚举对象里面的值必须是同一类型,并且唯一的
可以通过【类名.属性】直接引用该常量,如 Color.Red
java 为枚举类型提供了一些内置的方法,同时枚举常量还可以有自己的方法,很方便的遍历枚举对象。
二、代码示例
1)类中枚举
package enum_test;
public class EnumTest_1 {
// 枚举方法,相当一个类
private enum Color{red,blue,greeen} // 没有 【;】 分号
public static void main(String[] args) {
// Color.values() 返回一个数组
for(Color c : Color.values()){
System.out.println(c);
}
System.out.println(Color.red);
}
/*
* 输出结果:
red
blue
greeen
red
*/
}
2)枚举类
WeekDay.java
package enum_test;
public enum WeekDay {
// 枚举内容
Mon("MonDay"),Tue("Tuesday"),Wed("WednestDay");
// 设置属性,存放枚举内容,day 为 Mon,Tue,Wed
private String day;
private WeekDay(String day){
this.day = day;
}
// 获取括号里面的值,MonDay、Tuesday、WednestDay
public String getDay() {
return day;
}
// 打印方法
public static void printDay(int dayNumber){
switch(dayNumber){
case 1 : System.out.println(WeekDay.Mon); break;
case 2 : System.out.println(WeekDay.Tue); break;
case 3 : System.out.println(WeekDay.Wed); break;
default : System.out.println("其他星期");
}
}
}
Test.java
package enum_test;
public class Test {
public static void main(String[] args) {
System.out.println(WeekDay.values()); // 枚举类内容的集合
for(WeekDay day : WeekDay.values()){ // 集合内单个输出
System.out.println(day); // 括号外内容
System.out.println(day.getDay()); // 括号内容
System.out.println(day.getDeclaringClass()); // 输出类名
}
WeekDay.printDay(3);
WeekDay.printDay(4);
}
}
输出结果:
[Lenum_test.WeekDay;@60e128
Mon
MonDay
class enum_test.WeekDay
Tue
Tuesday
class enum_test.WeekDay
Wed
WednestDay
class enum_test.WeekDay
Wed
其他星期