enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}
class EnumDemo {
Day day;
public EnumDemo(Day day) {
this.day = day;
}
public void monkeydoing() {
switch (day) {
case SUNDAY:
System.out.println("星期七,猴子刷油漆");
break;
case MONDAY:
System.out.println("星期一,猴子穿新衣");
break;
case TUESDAY:
System.out.println("星期二,猴子肚子餓");
break;
case WEDNESDAY:
System.out.println("星期三,猴子去爬山");
break;
case THURSDAY:
System.out.println("星期四,猴子去考試");
break;
case FRIDAY:
System.out.println("星期五,猴子去跳舞");
break;
case SATURDAY:
System.out.println("星期六,猴子去斗六");
break;
}
}
public static void main(String[] args) {
EnumDemo day1 = new EnumDemo(Day.MONDAY);
day1.monkeydoing();
EnumDemo day2 = new EnumDemo(Day.TUESDAY);
day2.monkeydoing();
EnumDemo day3 = new EnumDemo(Day.WEDNESDAY);
day3.monkeydoing();
EnumDemo day4 = new EnumDemo(Day.THURSDAY);
day4.monkeydoing();
EnumDemo day5 = new EnumDemo(Day.FRIDAY);
day5.monkeydoing();
EnumDemo day6 = new EnumDemo(Day.SATURDAY);
day6.monkeydoing();
EnumDemo day7 = new EnumDemo(Day.SUNDAY);
day7.monkeydoing();
}
}
/* 《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:EnumDemo.java
功能:示範物件導向的基本觀念
作者:張凱慶
時間:西元 2010 年 10 月 */編譯後執行,結果如下

第 1 行到第 4 行
enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}這表示識別字 Day 為 Enum 型態,有七個值,分別是 SUNDAY 、 MONDAY 、 TUESDAY 、 WEDNESDAY 、 THURSDAY 、 FRIDAY 、 SATURDAY 。
第 7 行
Day day;
這裡宣告屬性 day 為 Day 型態的變數。因此,函數 main() 的內容
EnumDemo day1 = new EnumDemo(Day.MONDAY); day1.monkeydoing(); EnumDemo day2 = new EnumDemo(Day.TUESDAY); day2.monkeydoing(); EnumDemo day3 = new EnumDemo(Day.WEDNESDAY); day3.monkeydoing(); EnumDemo day4 = new EnumDemo(Day.THURSDAY); day4.monkeydoing(); EnumDemo day5 = new EnumDemo(Day.FRIDAY); day5.monkeydoing(); EnumDemo day6 = new EnumDemo(Day.SATURDAY); day6.monkeydoing(); EnumDemo day7 = new EnumDemo(Day.SUNDAY); day7.monkeydoing();
day1 的屬性 day 為 Day.MONDAY , day2 的屬性 day 為 Day.TUESDAY ,餘下類推。然後呼叫方法 monkeydoing() ,程式會依 Day 型態的值印出相對應的字串。
| 中英文術語對照 | |
|---|---|
| 常數 | constant |
4 則留言:
public EnumDemo(Day day) {
this.day = day;
}
這幾句有什麼用?看了很久都不明白...
你應該是用 c 去聯想 java 的 enum, 其實應該也把 enum 看成是 class 的特例
是的, Enum 型態也是種類別
倒是這裡提供的範例盡可能要求簡單不複雜
^_^
this 是代表Day這個class
睇constructor 你就會知道this的用法
張貼留言