JDK1.5引入了新的类型--枚举。它虽然只能算是个“小”功能,却给我的开发带来了“大”方便。例如我在开发过程中遇到了一些小问题,如何能更快地使用一些常量,这时候枚举的优势就全显现了.
用法一:常量
在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
Java代码
` public enum Color {
RED, GREEN, BLANK, YELLOW
} `
用法二:switch
JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。
Java代码
` 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 实例。
Java代码
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;
}
// 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;
}
}
用法四:覆盖枚举的方法
下面给出一个toString()方法覆盖的例子。
Java代码
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 不支持多继承,所以枚举对象不能再继承其他类。
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);
}
}
用法六:使用接口组织枚举
Java代码
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 枚举是一种特殊的类,用于定义一组常量。在Java中,枚举类型是一种强大的工具,它不仅可以存储常量值,还可以具有方法和行为。枚举在编程中被广泛用于表示固定数量的已知值,例如一周的天数、颜色、季节等。 ...
### 枚举完整讲解实例 #### 一、引言与问题背景 在软件开发中,我们经常遇到需要限制变量取值的情况。例如,在一个学生管理系统中,我们需要存储学生的考试等级,该等级只能是“A”、“B”、“C”、“D”或“E”。...
适用人群:适用于具有一定Java编程基础的学习者和开发者,特别推荐给希望深入了解Java核心技术的专业人士。 使用场景及目标:本文旨在提升读者对于Java中枚举和泛型的理解与应用能力,包括掌握如何高效地定义和使用...
本文将深入探讨在MyBatis中如何使用枚举类型,并通过实际的项目"mybatis入门实战之枚举类型"进行讲解。这个项目提供了一个简单的demo,非常适合初学者了解并实践MyBatis的TypeHandler机制。 首先,我们要明白枚举...
总之,Java的基础讲解和面向对象分析是开发者必须掌握的基础知识,这将为他们未来的学习和发展奠定坚实的基础。通过不断练习和实践,初学者可以逐渐精通这个强大的编程语言,进而创造出更多优秀的软件产品。
本文将深入探讨几种解决Java中中文乱码问题的方法,并以MyEclipse为开发环境,结合实际示例进行讲解。 1. 文件读写中的乱码: 当Java程序读取或写入包含中文字符的文件时,需要设置正确的字符编码。例如,使用`...
接着,教程会深入讲解Java语法基础,包括数据类型(基本类型与引用类型)、变量、常量、运算符、流程控制语句(如if-else、switch、for、while等)。这些知识点是构建任何程序的基础,理解和熟练运用它们是成为合格...
以下将详细讲解 Java 枚举的使用: 1. **枚举定义**: 在 Java 中,枚举是通过 `enum` 关键字来定义的。例如,`WeekDay` 是一个枚举类型,包含了 `SAT`, `MON`, `TUE`, `WED`, `THU`, `FRI`, 和 `SAT` 这些枚举值...
然后,PPT将深入讲解Java语法基础,这通常包括变量、数据类型(包括基本类型和引用类型)、运算符、流程控制(如if语句、switch语句、for循环、while循环)和方法定义。还会涵盖类和对象的概念,这是面向对象编程的...
Java中的枚举是一种强大的工具,它允许...总结来说,这个PPT教案深入浅出地介绍了Java枚举的特性以及如何利用枚举实现设计模式,尤其是单例模式,同时也展示了枚举在增强类型安全性、简化代码以及在模式中的应用价值。
Java基础学习课件PPT是一套全面覆盖Java SE(标准版)基础知识的教育资源,适合初学者和希望巩固Java技能的开发者。这套课件旨在在一个月内帮助学习者掌握Java编程的核心概念,为深入学习和应用Java技术打下坚实的...
下面我们将深入讲解Java枚举的相关知识点。 首先,创建枚举的基本语法如下: ```java public enum EnumName { Element1, Element2, Element3; } ``` 在这个例子中,`EnumName`是枚举的名称,`Element1`, `...
12. **枚举类型**:Java 5引入了枚举,用于定义一组固定的常量。 13. **泛型**:泛型允许在类、接口和方法中使用类型参数,增强了代码的类型安全性和重用性。 14. **Java SE (标准版)**:"老王java se"可能是指...
3. **语法基础**:讲解Java的基本语法,如变量、数据类型(包括基本类型和引用类型)、运算符、控制结构(如if语句、for循环、while循环)、分支与循环的使用。 4. **类与对象**:深入理解面向对象编程的基本概念,...
本章节主要讲解Java面向对象的其他概念,包括抽象类、接口、内部类、枚举类。抽象类是一种特殊的类,不能被实例化,用于定义一些公用的方法和变量。接口是一种特殊的抽象类,用于定义一些公用的方法和变量,且必须被...
IBM-ETP(IBM Education Training Program)提供的"Java 常用类讲解2"培训课程,显然是为了帮助开发者深入理解Java的核心类库,提高编程效率。在这个部分,我们将详细探讨Java中的常用类,以及它们在实际开发中的...
本资源将涵盖 Java 的基础知识点,通过代码和注释的方式进行讲解。 一、JDK 配置及验证 * JDK(Java Development Kit)的安装和配置 * JDK 的版本管理和升级 * Java runtime environment(JRE)的配置 * Java 代码...
14. **枚举与注解**:枚举类型在Java中的使用,以及注解(Annotation)的作用和创建自定义注解。 15. **Java标准库API**:介绍一些常用的Java库,如Collections、IO、Net等,以及如何查阅API文档。 这个PPT教程...
2. **Java语法**:讲解基本的Java编程语句,包括变量声明、数据类型、运算符、流程控制(如if-else,switch,循环)、数组以及方法。 3. **类与对象**:深入理解面向对象编程的基本概念,包括类的定义、对象的创建...
这份"Java基础ppt.zip"压缩包提供了一套完整的Java基础知识学习资源,专为初学者设计,旨在帮助那些对IT行业感兴趣的新手从零开始系统地掌握Java编程。 PPT中可能会涵盖以下关键知识点: 1. **Java简介**:解释...