枚举是列出某些有穷序列的所有成员的程序,又或者是一种特定类型对象的计数。本质就是,一个类里面定义几个静态常量,每个变量都是这个类的梳理。
java枚举就是一个特殊的类,一般一组常量,比如,性别的男性与女性,一个星期的七天等等。
定义
1)被enum关键字修饰的类型就是枚举类型。
2)枚举不添加任何方法,枚举值默认为从0开始的有序数值。
3)枚举是不可以被继承的。
4)枚举类型不可以被实例化
实例
例子:
public enum Sex {
MAN,WOMAN; //一个常量之间用逗号隔开,这一行一定要放在第一行,后面有代码一定要加:
}
public class Test{
public static void main(String[] args) {
Sex s = Sex.MAN;
System.out.println(s);
}
}
结果为:
MAN
上面的枚举类的代码就等同于:
public class Sex {
public final static Sex MAN = null;
public final static Sex WOMAN = null;
}
如果想给男女赋值的枚举类可以使用如下方法
public enum Sex {
MAN("男"),WOMAN("女"); //一个常量之间用逗号隔开,这一行一定要放在第一行,后面有代码一定要加:
private String sex;
Sex(String sex){
this.sex = sex;
}
public String toString() {
return sex;
}
}
public class Test{
public static void main(String[] args) {
Sex s = Sex.MAN;
System.out.println(s.toString());
}
}
结果是
男
这样子就可以给性别赋值啦。
valueOf()方法
Enum提供了一个valueOf方法,这个方法和toString方法是相对应的。调用valueOf(“Blue”)将返回 Color.Blue.因此我们在自己重写toString方法的时候就要注意到这一点,一把来说应该相对应地重写valueOf方法。