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() 获得枚举类型变量的长度。