Java学习笔记-枚举类

我们先简单定义一个枚举类型。

public enum Size{SMALL,MEDIUM,LARGE,EXTRA_LARGE};

事实上,这个声明定义的是类型是一个类,它刚好有4个实例。
因此,在比较两个枚举类型的值时,永远不要调用equals,而直接使用”==“就可以了。
当然,我们也可以在枚举类型中添加一些构造器、方法和域。

enum Size{
	SMALL("S"),MEDIUM("M"),LARGR("L"),EXTRA_LAGE("XL");
	private String abbreviation;
	private Size(String abbreviation){this.abbreviation=abbreviation;}
	public String getAbbreviation(){return abbreviation;}
}

每一个枚举类型都是Enum类的子类。它们继承了这个类的诸多方法:

Size.SMALL.toString();//这个方法能够返回枚举常量名字,返回”SMALL“
Size[] values=Size.values();//这个方法将返回一个包含所有枚举值的数组。
Size.MEDIUM.ordinal();//返回enum声明中的枚举常量的位置,从0开始。

还有一个特殊且重要的API:
static Enum valueOf(Class EnumClass,String name)//返回指定名字、给定类的枚举常量。

下面贴一下完整的程序:

package enums;
import java.util.*;
public class EnumTest {
	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().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!");
	}
}
enum Size{
	SMALL("S"),MEDIUM("M"),LARGR("L"),EXTRA_LARGE("XL");
	private String abbreviation;
	private Size(String abbreviation){this.abbreviation=abbreviation;}
	public String getAbbreviation(){return abbreviation;}
}


版权声明:本文为weixin_41724265原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。