资料来源:http://blog.jobbole.com/31597/
JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。
用法一:常量
在JDK1.5 之前,我们定义常量都是: public static fianl…. 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
public enum Color {
RED, GREEN, BLACK, YELLOW
}
用法二:switch
JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。
enum Light {
GREEN, YELLOW, RED
}
class TrafficLight {
public void change(Light color) {
switch (color) {
case RED :
color = Light.GREEN ;
System.out.println(color) ;
break ;
case YELLOW :
color = Light.RED ;
System.out.println(color) ;
break ;
case GREEN :
color = Light.YELLOW ;
System.out.println(color) ;
break ;
}
}
}
public class TrafficLightTest {
public static void main(String[] args) {
new TrafficLight().change(Light.RED) ;
}
}
用法三:向枚举中添加新方法
如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum实例。
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 ;
}
// get set 方法
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;
}
}
public class ColorTest {
public static void main(String[] args) {
System.out.println(Color.getName(1)) ;
}
}
用法四:覆盖枚举的方法
下面给出一个toString()方法覆盖的例子。
//覆盖方法
@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文档。
关于枚举的实现细节和原理请参考:参考资料:《Thinking in Java》第四版
分享到:
相关推荐
以下是对标题和描述中提及的Java枚举七种常见用法的详细说明: 1. 常量定义: 在Java中,枚举可以用来组织相关常量,提升代码的可读性和可维护性。例如,我们可以定义一个`Color`枚举,包含`RED`, `GREEN`, `BLANK`...
下面是Java枚举的七种常见用法的详细说明: 1. 常量用法: 在Java中,枚举可以用于组织一组相关的常量。在JDK 1.5之前,我们通常使用`public static final`关键字来定义常量,但这种方式不够灵活。枚举提供了一种...
下面我们将深入探讨Java枚举类型的常见用法。 首先,枚举类型在本质上等同于定义了一组静态常量。创建枚举类型的语法如下: ```java public enum Belle { para1, para2, para3, para4; } ``` 这会创建一个名为`...
以下将详细介绍7种常见的Java枚举用法: 1. **常量用法**: 在JDK 1.5之前,我们通常使用`public static final`关键字来定义常量。但自从引入枚举后,我们可以将相关联的常量组织到同一个枚举类型中,如`Color {...
### Java枚举详解 在Java编程语言中,枚举(`enum`)是一种特殊的类,用于定义一组固定的常量值。这些常量值通常代表了一组预定义的选项或者状态,比如颜色、方向等。使用枚举可以提高代码的可读性和可维护性,并且...
首先,我们需要理解枚举的常见用法。枚举类型定义如下: ```java public enum Color { RED("红色"), GREEN("绿色"), BLUE("蓝色"); private String desc; Color(String desc) { this.desc = desc; } ...
### 枚举类型在switch语句中的用法 在编程语言中,枚举(Enum)是一种数据类型,它由一组固定的常量组成,通常用于表示有限的预定义值集。枚举类型的使用可以让代码更加清晰易读,并且有助于减少错误的发生。在本篇...
下面我们将详细探讨Java enum的四种常见用法。 1. 定义常量: 在Java 1.5之前,我们通常使用`public static final`关键字来定义常量,但这种方式存在一些局限。枚举提供了一种将相关常量分组的方式,例如定义颜色:...
枚举是Java 1.5引入的一种新类型,它允许开发者定义一组相关的值,这些值是该枚举类型的实例。在Java中,枚举类是一种特殊的类,它们默认继承自`java.lang.Enum`类,且具有以下特点: 1. 枚举类的实例必须在枚举类中...
在Java编程语言中,枚举(`enum`)是一种强大的工具,它允许我们定义一组预定义的常量。在Spring Boot 2.x框架中,枚举的使用可以帮助我们更好地管理和组织代码,提供类型安全和可读性。本篇将深入探讨如何在Spring ...
Java调用Chrome浏览器内核是开发桌面应用时一个常见的需求,尤其在需要嵌入Web页面或者与Web内容交互的场景下。CEF(Chromium Embedded Framework)是一个开源项目,它允许开发者将Google Chrome的Blink渲染引擎和V8...
Java是一种广泛使用的面向对象的编程语言,其设计目标是具有高度的可移植性、健壮性和安全性。在Java笔试题中,通常会涵盖以下几个核心领域: 1. **基础语法**:包括类、对象、接口、继承、多态、封装等概念。理解...
Java集合框架提供了一些常用的集合类,如ArrayList、LinkedList、Vector、HashMap、TreeMap等等,每种集合类都有其特点和用法。 十二、Java IO和NIO Java IO是Java的输入/输出流处理机制,NIO是Java的非阻塞IO机制...
8. **枚举**:Java枚举类型提供了强类型的安全性,可以用于替代传统的整数常量或字符串常量,使代码更加清晰和可维护。 9. **设计模式**:了解和应用单例、工厂、观察者、装饰器、适配器、策略等经典设计模式,有助...
4. 枚举和注解:C#的枚举和Java的枚举类在用法上有所不同,注解在Java中比C#更常见。转换时需考虑这些特性。 5. 面向接口编程:Java鼓励使用接口,而C#允许单继承和接口实现。转换时,需要根据设计模式和目标语言的...
8. **枚举与注解**:枚举是Java中的一种特殊类,常用于定义固定数量的值。注解是一种元数据,可以为编译器和JVM提供信息,例如用于自动生成代码、验证配置等。 9. **反射机制**:Java反射机制允许在运行时动态地...
在编程领域,`Compare`是一个常见的操作,用于比较两个对象或者值。这个操作在很多编程语言中都有体现,如C#、VB.NET、Java、JavaScript等。本文将深入探讨`Compare`的用法,以及在不同语言中的实现和应用。 在C#中...
11. **枚举与注解**:介绍Java中的枚举类型及其用法,以及注解的定义和应用,它们在现代Java开发中有着广泛的应用。 12. **Java 8及更高版本的新特性**:涵盖Lambda表达式、函数式编程、Stream API、日期时间API等...
以下是一些常见的Java应用和输入输出相关的知识点: 1. **StringBuilder 和 StringBuffer**: - 当需要拼接多个字符串时,优先选择`StringBuilder`,而不是使用`+`操作符或者多次调用`String`的`concat()`方法。这...