1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | 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(); } } /* 《程式語言教學誌》的範例程式 檔名:EnumDemo.java 功能:示範物件導向的基本觀念 作者:張凱慶 時間:西元 2010 年 10 月 */ |
編譯後執行,結果如下

第 1 行到第 4 行
1 2 3 4 | enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } |
這表示識別字 Day 為 Enum 型態,有七個值,分別是 SUNDAY 、 MONDAY 、 TUESDAY 、 WEDNESDAY 、 THURSDAY 、 FRIDAY 、 SATURDAY 。
第 7 行
7 | Day day; |
這裡宣告屬性 day 為 Day 型態的變數。因此,函數 main() 的內容
46 47 48 49 50 51 52 53 54 55 56 57 58 59 | 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的用法
張貼留言