枚举类型

下面是一个典型的枚举类型的例子:

public enuni Size { 
    SMALL , MEDIUM, LARGE, EXTRAJARGE 
};

实际上, 这个声明定义的类型是一个类, 它刚好有 4 个实例, 在此尽量不要构造新对象。

因此, 在比较两个枚举类型的值时, 永远不需要调用 equals, 而直接使用“= =” 就可以了。

如果需要的话, 可以在枚举类型中添加一些构造器、 方法和域。当然,构造器只是在构造枚举常量的时候被调用。下面是一个示例:

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

所有的枚举类型都是 Enum 类的子类。它们继承了这个类的许多方法。其中最有用的一个是 toString, 这个方法能够返回枚举常量名。例如, Size.SMALL.toString( ) 将返回字符串”SMALL”。

toString 的逆方法是静态方法 valueOf。例如, 语句:

Size s = Enum.valueOf(Size,class, "SMALL");

将 s 设置成 Size.SMALL。

每个枚举类型都有一个静态的 values 方法, 它将返回一个包含全部枚举值的数组。 例如,如下调用

Size[] values = Size.valuesO ;

返回包含元素 Size.SMALL,Size.MEDIUM,Size.LARGE和Size.EXTRA_LARGE 的数组。

ordinal方法返回enum声明中枚举常量的位置,位置从0开始计数。例如:Size.

MEDIUM. ordinal() 返回 1。

下面是枚举类型的常用方法:

static Enum valueOf(Class enumClass , String name )

返回指定名字、给定类的枚举常量。

String toString( )返回枚举常量名。
int ordinal ( )返回枚举常量在 enum 声明中的位置,位置从 0 开始计数。
int compareTo( E other )

如果枚举常量出现在 Other 之前,则返回一个负值;如果 this=other,则返回 0;则,返回正值。枚举常量的出现次序在 enum 声明中给出。

public static void main(String[] args) throws Exception{
	Size s1 = Enum.valueOf(Size.class, "SMALL");
	System.out.println(s1);		//SMALL

	Enum size = Size.SMALL;
	String s2 = size.toString();
	System.out.println(s2);		//SMALL

	int s3 = size.ordinal();
	System.out.println(s3);		//0

	Enum size2 = Size.MEDIUM;
	int s4 = size.compareTo(size2);
	System.out.println(s4);		//-1
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值