转自 : http://www.cnblogs.com/zhaoyanjun/p/5659811.html
枚举(enum)类型是Java 5新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。
1、常量的使用
在JDK1.5之前,我们定义常量都是:public static fianl....。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
1
2
3
4
5
6
7
|
package com; public enum Color {
RED, GREEN, BLANK, YELLOW
} |
使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
package com; public class B {
public static void main(String[] args) {
System. out .println( isRed( Color.BLANK ) ) ; //结果: false
System. out .println( isRed( Color.RED ) ) ; //结果: true
}
static boolean isRed( Color color ){
if ( Color.RED. equals ( color )) {
return true ;
}
return false ;
}
} |
或者 switch 的使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
package com; public class B {
public static void main(String[] args) {
showColor( Color.RED );
}
static void showColor(Color color){
switch ( color ) {
case BLANK:
System. out .println( color );
break ;
case RED :
System. out .println( color );
break ;
default :
System. out .println( color );
break ;
}
}
} |
2、自定义函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
package com; 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 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;
}
} |
使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
package com; public class B {
public static void main(String[] args) {
//输出某一枚举的值
System. out .println( Color.RED.getName() );
System. out .println( Color.RED.getIndex() );
//遍历所有的枚举
for ( Color color : Color.values()){
System. out .println( color + " name: " + color.getName() + " index: " + color.getIndex() );
}
}
} |
结果
红色
1
RED name: 红色 index: 1
GREEN name: 绿色 index: 2
BLANK name: 白色 index: 3
YELLO name: 黄色 index: 4
总结:
1、枚举的本质是类,在没有枚举之前,仍然可以按照java最基本的编程手段来解决需要用到枚举的地方。枚举屏蔽了枚举值的类型信息,不像在用public static final定义变量必须指定类型。枚举是用来构建常量数据结构的模板,这个模板可扩展。枚举的使用增强了程序的健壮性,比如在引用一个不存在的枚举值的时候,编译器会报错。枚举的更多用法还需要在开发中去研究创造,Java5、Java6增加了不少新的特性,技术在升级,对程序员来说就要学习,如果你热爱java的话。否则别人用到新特性的代码你看不懂,那才叫郁闷。
2、枚举在Java家族中只占了很小的一块比重,所以我在项目中用枚举的地方不是很多,毕竟,一个项目是很多人开发维护的,用一个陌生的东西,会给其他的同事造成阅读困难。所以常量大都是用public static final 来定义的。
相关推荐
本篇文章将深入探讨Java枚举的特性、用法以及如何在实际开发中充分利用它们。 一、枚举的基本用法 1. 声明枚举类型: ```java public enum Color { RED, GREEN, BLUE } ``` 在这里,`Color`是枚举类型,`RED`, `...
总之,"java-1.8.0-openjdk.linux.x86_64"是Linux系统上用于开发和运行Java应用的重要软件包,包含了Java开发和运行所需的所有基本组件,支持最新的Java 8特性,并针对64位系统进行了优化。安装和使用这个包,开发者...
- 枚举可以与Java的泛型机制结合使用,以增强其功能性和灵活性。 - 示例代码: ```java public class MyClass<T extends Enum<T>> { private T value; public MyClass(T value) { this.value = value; } ...
首先,让我们理解枚举类的基本概念。枚举类在Java中用于定义一组相关的固定数量的值,这些值通常代表常量。例如: ```java public enum Color { RED, GREEN, BLUE } ``` 在这个例子中,`Color`枚举定义了三个常量...
在 Java 中,可以使用两种方式来定义枚举:手动实现枚举类和使用 `enum` 关键字定义枚举类。 手动实现枚举类 手动实现枚举类需要遵守以下规则: * 构造器使用 `private` 修饰符。 * 属性使用 `private final` ...
本篇文章将深入探讨Java 5中的枚举基本应用,包括创建枚举、枚举方法、枚举实例以及枚举与switch语句的结合使用。 1. 创建枚举: 要创建枚举,我们需要使用`enum`关键字,后跟枚举名和一对大括号,其中包含枚举值...
本篇文章将深入探讨Java枚举的使用及其背后的原理。 一、枚举的定义与使用 1. 基本用法: 在Java中,枚举可以通过`enum`关键字来创建。例如,我们可以定义一个表示一周七天的枚举类型: ```java public enum ...
计算机后端-Java-Java核心基础-第23章 枚举类与注解 15. jdk中4个基本的元注解的使用
计算机后端-Java-Java核心基础-第23章 枚举类与注解 14. jdk中4个基本的元注解的使用
Java枚举(enum)是Java语言中的一种特殊数据类型,用于定义一组有限的常量,这些常量在程序中作为固定的值使用。枚举在Java中被引入,目的是为了更好地管理和使用常量,提高代码的可读性和安全性。在本实例代码中,...
首先,我们需要理解枚举的基本概念。枚举是一种预定义的类,允许我们创建一组相关的值。例如,我们可以定义一个`Color`枚举,包含`RED`、`BLUE`和`GREEN`等颜色常量。枚举类型可以继承接口,这使得它们能够实现特定...
- Java的枚举类型在运行时具有与基本类型相似的性能,因为它们在内存中被优化以提高效率。 - 枚举对象是单例的,这意味着每个枚举值只创建一次,这有助于节省内存并提高性能。 **Java中的枚举特性** - **枚举...
枚举在Java中的使用不仅提高了代码的可读性和可维护性,还避免了传统常量类的一些潜在问题,如类型安全和非法实例化。 首先,我们来看枚举的基本定义。枚举类型的声明类似于类的声明,但用关键字`enum`开头。例如:...
计算机后端-Java-Java核心基础-第23章 枚举类与注解 12. JDK内置的三个基本注解.avi
这篇博客将深入探讨Java枚举的特性和使用方法,包括`EnumSet`和`EnumMap`这两个与枚举相关的数据结构。 首先,枚举定义的基本语法是`public enum EnumName {constant1, constant2, ...}`。每个枚举常量都是`...
天气后端 用JAVA编写的用于后端测试的自动化项目,用于测试Open Weather API 安装 ...枚举->框架枚举 功能->具有Cucumber的BDD的.feature文件 步骤->包含测试步骤的类 支持->测试支持类 BaseTest->用
创建一个新的Java工程,可以通过菜单栏的File -> New -> Java Project,然后输入工程名称,比如按照学习进度命名(例如day01)。 **Eclipse使用技巧:** 1. **创建Java工程**:通过File -> New -> Java Project,...
- **数据类型**:protobuf支持基本类型(如int32、string、bool等)、枚举、消息(复杂数据结构)、重复字段等。 - **编码规则**:protobuf使用高效的二进制编码方式,比XML或JSON更节省空间。 - **编译器**:protoc...
在Java中,可以使用`Thread.State`枚举来获取线程的状态,例如`thread.getState()`。此外,`java.lang.Thread`类提供了很多与线程管理相关的静态和实例方法,如`join()`用于等待线程完成,`interrupt()`用于中断线程...
Java中的枚举(enum)类型是在JDK 1.5版本引入的一个强大的特性,它用于定义一组相关的常量。在C/C++等语言中,枚举通常用来表示一组具有固定值的常量集合,但在Java中,枚举不仅限于此,它提供了更多的功能和灵活性...