java枚舉(二):即對java枚舉(一)中的例子進行拓展
阿新 • • 發佈:2017-12-28
枚舉/*
知識點:枚舉
枚舉是從java5開始提供的一種新的數據類型,是一個特殊的類,就是多個常量對象的集合
定義格式:
[修飾符] enum 枚舉類名
{
常量A, 常量B, 常量C;
}
*/
//定義枚舉
enum Weekday
{
Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday;
//枚舉類型中的Monday等價於原來的:public static final Weekday Monday = new Weekday();
}
class Employees
{
private Weekday restday; //一周的哪一天休息(數據類型為Weekday)
public Weekday getRestday()
{
return restday;
}
public void setRestday(Weekday restday) //數據類型為Weekday
{
this.restday = restday;
}
}
public class EnumerateExample
{
public static void main(String[] args)
{
Employees e = new Employees(); //創建員工對象
e.setRestday(Weekday.Wednesday); //通過類名.對象的方式來設置休息時間
Weekday restday = e.getRestday(); //用Weekday類型的變量restday來接收得到的值
if(restday == Weekday.Saturday || restday == Weekday.Sunday)
{
System.out.println("周末休息...");
}
else
{
System.out.println("周一至周五休息...");
}
}
}
/*
Weekday類的字節碼文件內容(用java字節碼反編譯工具進行反編譯後查看):
final class Weekday extends Enum //自定義的Weekday枚舉類在底層裏都是繼承java.lang中的Enum
{
public static final Weekday Monday;
public static final Weekday Tuesday;
public static final Weekday Wednesday;
public static final Weekday Thursday;
public static final Weekday Friday;
public static final Weekday Saturday;
public static final Weekday Sunday;
private static final Weekday $VALUES[];
public static Weekday[] values()
{
return (Weekday[])$VALUES.clone();
}
public static Weekday valueOf(String s)
{
return (Weekday)Enum.valueOf(Weekday, s);
}
private Weekday(String s, int i)
{
super(s, i);
}
static
{
Monday = new Weekday("Monday", 0);
Tuesday = new Weekday("Tuesday", 1);
Wednesday = new Weekday("Wednesday", 2);
Thursday = new Weekday("Thursday", 3);
Friday = new Weekday("Friday", 4);
Saturday = new Weekday("Saturday", 5);
Sunday = new Weekday("Sunday", 6);
$VALUES = (new Weekday[] {
Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
});
}
}
*/
java枚舉(二):即對java枚舉(一)中的例子進行拓展