测试代码:
public class EnumTest {
public static void main(String[] args) {
Size s=Size.SMALL;
Size t=Size.LARGE;
//s和t引用同一个对象?
System.out.println(s==t); //
//是原始数据类型吗?
System.out.println(s.getClass().isPrimitive());
//从字符串中转换
Size u=Size.valueOf("SMALL");
System.out.println(s==u); //true
//列出它的所有值
for(Size value:Size.values()){
System.out.println(value);
}
}
}
enum Size{SMALL,MEDIUM,LARGE};
这段代码定义了一个名为 EnumTest
的 Java 类,演示了如何使用 Java 枚举(enum)类型。下面是每一部分代码的详细解释:
-
类和主方法定义
java
public class EnumTest {public static void main(String[] args) {
该类 EnumTest
是一个公共类。
main
方法是程序的入口点,Java 程序从这里开始执行。
- 枚举实例的比较
java
Size s = Size.SMALL;
Size t = Size.LARGE;
System.out.println(s == t); //
这里创建了两个枚举实例,s
被赋值为 Size.SMALL
,t
被赋值为 Size.LARGE
。
使用 ==
运算符比较 s
和 t
。由于它们代表不同的枚举值,因此这个比较结果为 false
,输出 false
。
- 检查是否是原始数据类型
java
System.out.println(s.getClass().isPrimitive());
通过 s.getClass()
获取 s
的类对象,然后调用 isPrimitive()
方法检查该类是否为原始数据类型。
枚举不属于原始数据类型,因此此输出为 false
。
- 从字符串转换为枚举
java
Size u = Size.valueOf("SMALL");
System.out.println(s == u); // true
Size.valueOf("SMALL")方法将字符串
"SMALL"转换为对应的枚举常量
Size.SMALL,并将结果赋值给
u。 因此,
s和
u都指向同一个枚举常量
Size.SMALL,所以这行代码输出
true`。
-
列出所有枚举值
java
for (Size value : Size.values()) {
System.out.println(value);
}
Size.values()
会返回一个包含Size
枚举中所有常量的数组。
使用增强的for
循环遍历这些常量,并打印它们的名称。
这将分别输出枚举中定义的所有值:
SMALL
MEDIUM
LARGE -
枚举定义
java
enum Size { SMALL, MEDIUM, LARGE };
这行代码定义了一个名为 Size
的枚举,其中包含三个常量:SMALL
、MEDIUM
和 LARGE
。