importjava.util.*;/***Thisprogramdemonstratesenumeratedtypes.*@version1.02004-05-24*@authorCayHorstmann*/publicclassEnumTest{publicstaticvoidmain(String[]args){Scannerin=...
import java.util.*;
/**
* This program demonstrates enumerated types.
* @version 1.0 2004-05-24
* @author Cay Horstmann
*/
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();
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"); //这里语法不符合属性也不符合方法 到底是什么呢
private Size(String abbreviation) { this.abbreviation = abbreviation; }
public String getAbbreviation() { return abbreviation; }
private String abbreviation;
}
我知道这个自定义枚举和
enum Size { SMALL, MEDIUM, LARGE, EXTRA_LARGE};
一样 只是没有自定义的方法和属性;
SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA_LARGE("XL");
但是上面定义的到底是什么东西?
我的理解是
如果有这行代码
Size s = Size.SMALL
就相当于 调用了Size("S")这个构造器?
但是Size.SMALL 既不是Size类的属性也不是方法 我知道class和enum 是两个类
是不是enum有第三种东西 叫枚举成员 在enum类的第一行以这种格式定义
展开