Java核心技术卷I程序清单5-12

时间:2021-07-31 16:17:15

P189
程序清单5-12 enums/EnumTest.java


  1. 代码
  2. 重要API

1.代码

import java.util.Scanner;

public class EnumTest
{  
   public static void main(String[] args)
   {  
   //初始化Scanner对象,其中System.in是一个InputStream对象
      Scanner in = new Scanner(System.in);
      System.out.print("Enter a size: (SMALL, MEDIUM, LARGE, EXTRA_LARGE) ");

    //读取输入的下一个单词(以空格作为分隔符)并将之大写化
      String input = in.next().toUpperCase();

    //将size设置成Size.input(其中input为一个Size枚举类型的值)
      Size size = Enum.valueOf(Size.class, input);
      System.out.println("size=" + size);

    //获取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");

   private Size(String abbreviation) { this.abbreviation = abbreviation; }
   public String getAbbreviation() { return abbreviation; }

   private String abbreviation;
}

2.重要API

java.lang.Enum<E> 5.0


static Enum valueof(Class enumClass, String name)
返回指定名字、给定类的枚举常量。

String toString()
返回枚举常量名。

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

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


关于Java Enum(java枚举类型)的详解,可以参考深入理解Java枚举类型

如有谬误或不完善之处,恳请斧正!