Enum的特征如下:
1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例。
2.所有枚举值都是public , static , final的。注意这一点只是针对于枚举值,
我们可以和在普通类里面定义 变量一样定义其它任何类型的非枚举变量,这些变量可以用任何你想用的修饰符。
3.Enum默认实现了java.lang.Comparable接口。
4.Enum覆载了了toString方法,因此我们如果调用Color.Blue.toString()默认返回字符串”Blue”.
5.Enum提供了一个valueOf方法,这个方法和toString方法是相对应的。调用valueOf(“Blue”)将返回 Color.Blue.因此我们在自己重写toString方法的时候就要注意到这一点,一把来说应该相对应地重写valueOf方法。
6.Enum还提供了values方法,这个方法使你能够方便的遍历所有的枚举值。
7.Enum还有一个oridinal的方法,这个方法返回枚举值在枚举类种的顺序,这个顺序根据枚举值声明的顺序而定,这里Color.Red.ordinal()返回0。
public enum Color {
Red,Green,Blue;
}
@Test
public void test1()
{
System.out.println( Color.values().length);
System.out.println( Color.Blue.toString());
System.out.println( Color.valueOf("Blue") == Color.Blue);
}
执行结果如下:
3
Blue
true
下面看有构造的枚举:
public enum ColorConstruct {
RED(1), GREEN(2), BLANK(3), YELLO(4);
private int index;
private ColorConstruct(int index) {
this.index = index;
}
}
@Test
public void test2()
{
System.out.println( ColorConstruct.values().length);
System.out.println( ColorConstruct.RED.toString());
System.out.println( ColorConstruct.valueOf("RED") == ColorConstruct.RED);
}
执行结果为:
4
RED
true
分享到:
相关推荐
`values()`返回所有枚举实例的数组,`valueOf(String)`则根据名称创建对应的枚举实例。 5. **枚举的继承** 枚举默认继承`java.lang.Enum`类,因此它们不能直接继承其他类,但可以实现接口。这使得枚举可以具有特定...
### 枚举类型在switch语句中的用法 在编程语言中,枚举(Enum)是一种数据类型,它由一组固定的常量组成,通常用于表示有限的预定义值集。枚举类型的使用可以让代码更加清晰易读,并且有助于减少错误的发生。在本篇...
- `valueOf(String name)`返回一个与指定字符串名称相对应的枚举常量实例。 ```java for (WeekDay day : WeekDay.values()) { System.out.println(day + "====>" + day.getDay()); } ``` 4. **枚举的原理:**...
4. **通过名称获取枚举实例**:如果已知枚举的名称,可以使用`valueOf()`方法获取对应的枚举实例。 ```java Color colorFromName = colorClass.valueOf("RED"); // 获取到RED枚举实例 ``` 5. **枚举的构造函数**:...
- 也可以通过`valueOf()`方法根据名称获取枚举常量,例如`Belle.valueOf("para1")`。 5. **枚举成员方法**: - 枚举类型中的成员方法可以是抽象的,每个枚举常量需要实现这个方法。例如: ```java public enum ...
本篇文章将深入探讨Java枚举的特性、用法以及如何在实际开发中充分利用它们。 一、枚举的基本用法 1. 声明枚举类型: ```java public enum Color { RED, GREEN, BLUE } ``` 在这里,`Color`是枚举类型,`RED`, `...
例如,`EnumTest.valueOf("RED")`将返回`RED`枚举值。 3. **自定义方法**:除了Java内置的方法外,还可以自定义其他方法。在提供的代码示例中,定义了以下几个方法: - `getName(int index)`:根据索引返回枚举值...
此外,枚举类型不能被实例化,除非通过`values()`或`valueOf()`方法,这增加了代码的可控性。 在Java中,枚举还可以用于switch语句,提供了一种更安全的替代传统的if...else if...else结构。例如: ```java ...
-- To control the starting value of an enum, the first value can be set. local States = Enum ({ [ " Paused " ] = - 1 , -- Our enum will now start at -1 instead of 0. " Active " , -- > 0 " Win " , -...
`values()`方法返回枚举类型的实例数组,`valueOf()`方法根据字符串转换为对应的枚举实例。例如: ```java WeekDay day = WeekDay.values()[0]; // 获取第一个枚举元素 WeekDay dayByName = WeekDay.valueOf(...
此外,还可以使用`valueOf()`方法将字符串转换为对应的枚举常量。 五、枚举与switch语句 枚举类型在`switch`语句中表现得非常有效。它可以替代传统的if-else if-else结构,使代码更加简洁和易读。 六、枚举与源码...
- `valueOf()`:将字符串转换为对应的枚举实例,如果字符串匹配某个枚举值。 - `compareTo()`:比较两个枚举实例在枚举定义中的相对顺序,返回整数值表示它们的前后关系。 5. **ordinal()**: `ordinal()`方法...
枚举类型提供了多种内置方法,包括`values()`和`valueOf(String name)`,前者返回一个包含所有枚举常量的数组,后者则根据枚举类型的名字返回相应的枚举常量。例如: ```java Color[] colors = Color.values(); // ...
4. **`valueOf()`**:根据枚举元素的名称获取枚举对象实例。 ##### 3.1 枚举遍历示例 下面是一个简单的枚举遍历示例: ```java public static void testTraversalEnum() { Light[] allLight = Light.values(); ...
1. **自动继承Enum类**:所有枚举都是`java.lang.Enum`的子类,这意味着枚举类具有内置的方法,如`values()`(返回枚举常量数组)和`valueOf(String)`(根据名称返回枚举常量)。 2. **单例性**:每个枚举常量都是一...
优雅地在Java应用中实现全局枚举处理的方法 本文介绍了如何优雅地在Java应用中实现全局枚举处理的方法,旨在帮助开发者更好地处理枚举类和数据字典。文章中提供了详细的示例代码,详细介绍了枚举类和数据字典的优点...
同时提供了`valueOf()`方法,用于将字符串转换为相应的枚举值,以及`values()`方法,用于获取所有枚举值的数组。 5. **枚举值的顺序**:`ordinal()`方法返回枚举值在枚举类中的位置,这一顺序由枚举值声明的顺序...
// 省略构造器、values() 和 valueOf() 方法 // 枚举常量的初始化 static { SPRING = new Season("SPRING", 0); SUMMER = new Season("SUMMER", 1); AUTUMN = new Season("AUTUMN", 2); WINTER = new Season...
2. `valueOf(String)`:通过字符串名返回对应的枚举实例,注意区分大小写。 3. 自定义方法:可以在枚举类中添加自己的方法,这些方法对所有枚举实例都可用。 五、枚举类的继承与多态 虽然枚举类默认是final的,不能...
- `valueOf(String name)`:根据名称获取对应的枚举常量。 - 示例代码: ```java for (Train t : Train.values()) { System.out.println(t); } ``` 3. **构造方法**: - 枚举类可以有自己的构造方法,但...