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的用法
張貼留言