DK1.5引入了新的类型——枚举。在
Java
中它虽然算个“小”功能,却给我的开发带来了“大”方便。
用法一:常量
在JDK1.5
之前,我们定义常量都是:
publicstaticfianl....
。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
-
public
enum
Color {
-
RED, GREEN, BLANK, YELLOW
-
}
用法二:switch
JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。
-
enum
Signal {
-
GREEN, YELLOW, RED
-
}
-
public
class
TrafficLight {
-
Signal color = Signal.RED;
-
public
void
change() {
-
switch
(color) {
-
case
RED:
-
color = Signal.GREEN;
-
break
;
-
case
YELLOW:
-
color = Signal.RED;
-
break
;
-
case
GREEN:
-
color = Signal.YELLOW;
-
break
;
-
}
-
}
-
}
用法三:向枚举中添加新方法
如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且
Java
要求必须先定义
enum
实例。
-
public
enum
Color {
-
RED("红色"
,
1
), GREEN(
"绿色"
,
2
), BLANK(
"白色"
,
3
), YELLO(
"黄色"
,
4
);
-
-
private
String name;
-
private
int
index;
-
-
private
Color(String name,
int
index) {
-
this
.name = name;
-
this
.index = index;
-
}
-
-
public
static
String getName(
int
index) {
-
for
(Color c : Color.values()) {
-
if
(c.getIndex() == index) {
-
return
c.name;
-
}
-
}
-
return
null
;
-
}
-
-
public
String getName() {
-
return
name;
-
}
-
public
void
setName(String name) {
-
this
.name = name;
-
}
-
public
int
getIndex() {
-
return
index;
-
}
-
public
void
setIndex(
int
index) {
-
this
.index = index;
-
}
-
}
用法四:覆盖枚举的方法
下面给出一个toString()方法覆盖的例子。
-
public
enum
Color {
-
RED("红色"
,
1
), GREEN(
"绿色"
,
2
), BLANK(
"白色"
,
3
), YELLO(
"黄色"
,
4
);
-
-
private
String name;
-
private
int
index;
-
-
private
Color(String name,
int
index) {
-
this
.name = name;
-
this
.index = index;
-
}
-
-
@Override
-
public
String toString() {
-
return
this
.index+
"_"
+
this
.name;
-
}
-
}
用法五:实现接口
所有的枚举都继承自java.lang.Enum类。由于Java
不支持多继承,所以枚举对象不能再继承其他类。
-
public
interface
Behaviour {
-
void
print();
-
String getInfo();
-
}
-
public
enum
Color
implements
Behaviour{
-
RED("红色"
,
1
), GREEN(
"绿色"
,
2
), BLANK(
"白色"
,
3
), YELLO(
"黄色"
,
4
);
-
-
private
String name;
-
private
int
index;
-
-
private
Color(String name,
int
index) {
-
this
.name = name;
-
this
.index = index;
-
}
-
-
@Override
-
public
String getInfo() {
-
return
this
.name;
-
}
-
-
@Override
-
public
void
print() {
-
System.out.println(this
.index+
":"
+
this
.name);
-
}
-
}
用法六:使用接口组织枚举
-
public
interface
Food {
-
enum
Coffee
implements
Food{
-
BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO
-
}
-
enum
Dessert
implements
Food{
-
FRUIT, CAKE, GELATO
-
}
-
}
用法七:关于枚举集合的使用
java.util.EnumSet和java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的
key是enum类型,而value则可以是任意类型。关于这个两个集合的使用就不在这里赘述,可以参考JDK文档。
关于枚举的实现细节和原理请参考:
分享到:
相关推荐
总结来说,Java枚举类型提供了一种安全、类型安全的方式来定义和使用常量,它可以拥有构造器、方法和字段,并能与switch语句、序列化、反射等Java特性很好地结合。理解并熟练使用枚举,能够使代码更加清晰、易读,...
### Java 枚举类型详解 #### 一、引言 ...通过以上的介绍,我们可以看到Java枚举类型不仅提供了类型安全的保障,还为开发者带来了极大的灵活性。合理地使用枚举类型,可以显著提高代码的质量和可维护性。
总的来说,学习Java枚举不仅能够帮助我们编写更清晰、更安全的代码,还能提高程序设计的效率。通过深入理解枚举的特性和用法,可以更好地应对各种编程场景,尤其是在处理固定值集合或需要类型安全的场合。在Java EE...
目前基本上没有一个很好的全局处理枚举类的方案,所以需要自定义一个枚举转换工具类,或者在枚举类中编写一个静态方法实现Integer转换枚举的方式。例如: ```java public enum GenderEnum { // 代码略 public ...
Java枚举(Enum)在编程中扮演着重要的角色,它是一种特殊的类,允许开发者定义一组预定义的常量。在Java中,枚举是通过关键字`enum`来创建的,它提供了一种更加安全和优雅的方式来处理有限的、固定的选项集合。本文...
枚举(Enum)在编程语言中是一种特殊的数据类型,它用于定义一组相关的常量。枚举可以帮助我们提高代码的...通过阅读相关文档和分析代码,你可以更好地掌握枚举的使用技巧,并将其应用于你的项目中,提高代码质量。
枚举类型的说明 枚举类型是 JDK 5.0 的新特征,Sun 引进了一个全新的关键字 enum 来定义一个枚举类。枚举类型是一种特殊的...枚举类型是一种特殊的类,具有许多有用的方法和特征,是Java语言中的一种重要的数据类型。
例如,上面提到的`Season`接口就是一个很好的例子,它定义了四个整型常量来表示不同的季节,而`SeasonEnum`枚举类型则实现了这些常量,并提供了额外的功能。 通过以上的介绍,我们可以看出,枚举类型作为一种特殊的...
Java是一种广泛使用的编程语言,以其跨平台、面向对象的特点闻名于世。对于初学者来说,Java是一个非常好的起点,因为它的语法清晰,易于理解,并且拥有丰富的文档和社区支持。"Java PPT很好 很不错!!!"这个标题...
Java是一种广泛使用的面向对象的编程语言,以其跨平台、高性能和丰富的类库而闻名。这份“java基础”学习资料显然涵盖了Java语言的核心概念和基础知识,非常适合初学者入门。以下是一些可能包含在这些资料中的关键...
"java扑克牌,很好,很不错的"这个标题和描述暗示了我们有一个用Java编写的扑克牌游戏代码库,可能是开源的,供爱好者学习和参考。 扑克牌游戏的核心在于其规则和逻辑,而这些都需要通过编程来实现。在Java中,我们...
7. **复习文档**(对应文件:复习2.doc、复习.doc):这些文档可能包含了Java的综合知识,包括但不限于异常处理、IO流、反射、枚举、注解、泛型、集合框架(List、Set、Map)的使用、设计模式等。掌握这些知识点能...
Java 7增加了`enum`的`values()`和`valueOf()`方法,使得枚举类型的操作更加便捷。 7. **改进的for-each循环** 可以遍历数组的子范围,以及使用`Iterable`接口的集合,使循环控制更加灵活。 8. **嵌套接口...
枚举类型(Enum)在Java编程语言中是一种强大的工具,特别是在Android应用开发中,它可以用于定义一组固定的常量集合,提供了类型安全和易于使用的特性。在这个"枚举类型应用小Demo"中,我们将探讨如何利用枚举来...
"java读写HID设备"描述中的"封装好的API"很可能是指一个专门为处理HID设备而设计的Java库,它可能包含了与HID设备进行数据交换的类和方法。 这个库可能包含了以下关键功能: 1. **设备枚举**:库能扫描并列出所有...
Java作为一门广泛使用的编程...CHM文件中每篇文章可能详细阐述了一个或多个主题,对于Java初学者和有一定经验的开发者来说,都是很好的学习参考资料。在学习过程中,建议结合实践操作,加深理解并不断提升编程技能。
- **2.2 解析XML文档**:探讨了如何使用Java解析XML文档,包括DOM和SAX两种常见的解析方式。 - **2.3 验证XML文档**:介绍了如何使用DTD和XML Schema进行XML文档的验证。 - **2.4 使用XPath来定位信息**:XPath是一...
Java是一种广泛使用的面向对象的编程语言,以其跨...对于自学Java的人来说,这是一份很好的指导资料,可以帮助他们系统地学习和理解Java语言。通过深入阅读并实践其中的示例,初学者可以逐步建立起扎实的Java编程基础。
枚举(Enumeration)在编程语言中是一种特殊的数据类型,它用于定义一组有限的常量,这些常量通常代表某种特定的、预定义的状态或选项。...通过理解枚举的概念和用法,开发者可以更好地设计和实现软件系统。
《Effective Java》是Java开发领域的一本经典著作,由Joshua Bloch撰写,书中提出了一系列编程最佳实践和设计模式,帮助开发者写出更...同时,这些示例也是很好的学习材料,有助于你在实际项目中避免常见的陷阱和误区。