枚举类型

绝地灬酷狼 2022-05-19 09:00 451阅读 0赞

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

  1. public enuni Size {
  2. SMALL , MEDIUM, LARGE, EXTRAJARGE
  3. };

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

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

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

  1. public enum Size {
  2. SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA_LARGE("XL");
  3. private String abbreviation;
  4. private Size(String abbreviation) {
  5. this.abbreviation = abbreviation;
  6. }
  7. public String getAbbreviation() {
  8. return abbreviation;
  9. }
  10. }

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

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

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

将 s 设置成 Size.SMALL。

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

  1. 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 声明中给出。

  1. public static void main(String[] args) throws Exception{
  2. Size s1 = Enum.valueOf(Size.class, "SMALL");
  3. System.out.println(s1); //SMALL
  4. Enum size = Size.SMALL;
  5. String s2 = size.toString();
  6. System.out.println(s2); //SMALL
  7. int s3 = size.ordinal();
  8. System.out.println(s3); //0
  9. Enum size2 = Size.MEDIUM;
  10. int s4 = size.compareTo(size2);
  11. System.out.println(s4); //-1
  12. }

发表评论

表情:
评论列表 (有 0 条评论,451人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C#——类型

    C\——枚举类型 枚举类型 是由基础整型数值类型的一组命名常量定义的值类型。 若要定义枚举类型,请使用 enum 关键字并指定枚举成员 的名称: enum Se

    相关 类型

    枚举类型的定义和枚举变量的说明  1.  枚举的定义枚举类型定义的一般形式为:      enum 枚举名\{ 枚举值表 \};  在枚举值表中应罗列出所有可用值。