欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

枚举类型

程序员文章站 2022-04-24 11:07:43
...

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

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
}

 

相关标签: 枚举类型