enum枚舉類型是JAVA SE 5.0 以後的版本新定義出來的, 在此版本之前,有個常用的方法來做枚舉類, 這個是視頻中學到的。。。
class WeekDay{public static final WeekDay SUN = new WeekDay();public static final WeekDay MON = new WeekDay(); public static final WeekDay TUE = new WeekDay(); public static final WeekDay WED = new WeekDay(); public static final WeekDay THU = new WeekDay(); public static final WeekDay FRI = new WeekDay(); public static final WeekDay SAT = new WeekDay(); public String toString(){ if(this==SUN) return "SUN"; else if (this==MON) return "MON"; else if (this==TUE) return "TUE"; else if (this==WED) return "WED"; else if (this==THU) return "THU"; else if (this==FRI) return "FRI"; else return "SAT"; } public static void main(String [] args){ WeekDay weekDay = WeekDay.SUN; System.out.println(weekDay.toString()); }}
下面用到的就是枚舉類型啦, 他感覺上有點像類, 裡面也可以私自訂一些函數, 當然他內建也具有函數,
import java.util.*;enum Size{SMALL("S"),MEDIUM("M"),LARGE("L"),EXTRA_LARGE("XL");private Size(String abbreviation) {this.abbreviation = abbreviation;}public String getAbbreviation(){return abbreviation;}private String abbreviation;}public class Enums_TypeSafe{public static void main(String [] args){Scanner in = new Scanner(System.in);System.out.println("Enter a size:(SMALL,MEDIUM,LARGE,EXTRA_LARGE)");String input = in.next();Size size = Enum.valueOf(Size.class, input); //可以返回指定名字,給定類的枚舉常量System.out.println("abbreviation=" + size.getAbbreviation());if(size == Size.EXTRA_LARGE)System.out.println("Good job -- you paid attention to the_.");}}
新版本enum類型的好處 就是可以放在switch語句中進行判斷。
String toString() 返回枚舉常量名
int ordinal() 返回枚舉常量在enum聲明中的位置 位置從0開始計數
int compareTo(E other) 如果枚舉常量出現在other之前,則返回一個負值;如果this==other ,返回0,否則返回一個正值
Size[] values = Size.values(); enum類有一個values的方法, 可以返回一個enum類型的數組,也可以用enum.values().length() 獲得枚舉類型變數的長度。