public enum { SMALL,MEDIUM,LARGE,EXTRA_LARGE};
在比较两个枚举类型的值时,永远不用调用equals,而直接使用“==”就可以了
- 所有的枚举类型都是Enum类的子类,他们继承这个类的很多种方法,其中最有用的就是toString方法,例如
Size.SMALL.toString()将返回字符串“SMALL” - tostring方法的逆方法时静态方法valueOf
Size s=Enum.valueOf(Size.class,"SMALL");将s设置成Size.SMALL
每一个枚举类型都有一个静态的values方法,它将返回一个包含全部枚举值的数组。
Size[] values = Size.values();
返回的元素Size.SMALL,Size.MEDIUM,Size.LARGE和Size.EXTRA_LARGE
package enums;
import java.util.*;
public class EnumTest
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Enter a size: (SMALL, MEDIUM, LARGE, EXTRA_LARGE) ");
String input = in.next().toUpperCase();//toUpperCase() 方法将字符串小写字符转换为大写。
Size size = Enum.valueOf(Size.class, input);//调用[构造函数](,并赋值
System.out.println("size=" + size);
System.out.println("abbreviation=" + size.getAbbreviation());
if (size == Size.EXTRA_LARGE)
System.out.println("Good job--you paid attention to the _.");
}
}
enum Size
{
SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA_LARGE("XL");
/*SMLL("S"),在定义枚举类型成员变量时会自动调用构造函数,如无构造函数则会调用默认构造函数。
在程序运行时上文相当于执行了如下的代码
public static final Size SMALL = new Size("S");*/
private Size(String abbreviation) { this.abbreviation = abbreviation; }//获取属性值
public String getAbbreviation() { return abbreviation; }
private String abbreviation;
}
static Enum valueOf(Class enumClass ,String name)
返回指定的名字,给定类的枚举常量
String toString()
返回枚举常量名
int ordinal()
返回枚举常量在enum声明中的位置,位置从0开始技术
int compareto(E other)
如果枚举常量在other之前,则返回一个负值;如果this==other,则返回0,否则返回正值,枚举常量的出现次序在enum声明中给出
网友评论