5.6枚举类

2019-03-23  本文已影响0人  十六只猴子王
public enum { SMALL,MEDIUM,LARGE,EXTRA_LARGE};

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

Size s=Enum.valueOf(Size.class,"SMALL");将s设置成Size.SMALL

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

Size[] values = Size.values();

返回的元素Size.SMALL,Size.MEDIUM,Size.LARGE和Size.EXTRA_LARGE

package enums;

import java.util.*;
public class EnumTest
{  
   public static void main(String[] args)
   {  
      Scanner in = new Scanner(System.in);
      System.out.print("Enter a size: (SMALL, MEDIUM, LARGE, EXTRA_LARGE) ");
      String input = in.next().toUpperCase();//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 job--you paid attention to the _.");      
   }
}

enum Size
{
   SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA_LARGE("XL");
/*SMLL("S"),在定义枚举类型成员变量时会自动调用构造函数,如无构造函数则会调用默认构造函数。 
在程序运行时上文相当于执行了如下的代码
public static final Size SMALL = new Size("S");*/
   private Size(String abbreviation) { this.abbreviation = abbreviation; }//获取属性值
   public String getAbbreviation() { return abbreviation; }

   private String abbreviation;
}

static Enum valueOf(Class enumClass ,String name)
返回指定的名字,给定类的枚举常量
String toString()
返回枚举常量名
int ordinal()
返回枚举常量在enum声明中的位置,位置从0开始技术
int compareto(E other)
如果枚举常量在other之前,则返回一个负值;如果this==other,则返回0,否则返回正值,枚举常量的出现次序在enum声明中给出

上一篇 下一篇

猜你喜欢

热点阅读