`

关于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;
	}
	// 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()方法覆盖的例子。

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文档。

关于枚举的实现细节和原理请参考:

参考资料:《ThinkingInJava》



分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Java语言程序设计:JAVA_2-基本数据类型、枚举类型和数组.ppt

    Java语言程序设计:JAVA_2-基本数据类型、枚举类型和数组.ppt

    Java枚举类型Enum的用法

    Java枚举类型(Enum)是Java SE 5.0引入的一种新的数据类型,它为开发者提供了更为强大且安全的方式来表示一组常量。枚举在Java中不仅是一个类,还是一种特殊的类型,允许我们定义自己的常量集合。接下来,我们将...

    Java枚举数据类型.pdf

    Java 枚举数据类型 Java语言中没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量。这被称作int枚举模式。这种模式存在两个问题:类型安全性和可读性。 首先,int枚举模式不是类型安全的。例如,...

    java枚举类型说明

    在Java编程语言中,枚举(Enum)作为一种重要的数据类型,在程序设计中扮演着不可或缺的角色。本文将深入探讨Java枚举类型的特性和用法,并通过具体实例说明其优势所在。枚举类型在Java中的引入标志着一种更为类型...

    简单总结java枚举类型

    枚举常量可以作为`switch`语句的条件,这是其他数据类型(如字符串)所不具备的。这样可以提高代码的可读性和安全性。 7. 枚举与单例模式: 枚举天然实现了单例模式,因为它们的实例是预定义的并且不能通过new...

    java枚举实例代码

    Java枚举(enum)是Java语言中的一种特殊数据类型,用于定义一组有限的常量,这些常量在程序中作为固定的值使用。枚举在Java中被引入,目的是为了更好地管理和使用常量,提高代码的可读性和安全性。在本实例代码中,...

    java中枚举的使用

    在枚举中,我们可以定义方法,这些方法可以是抽象的,也可以包含具体实现。例如,我们可以定义一个返回枚举常量名称的方法: ```java public enum Color { RED, GREEN, BLUE; public String getName() { return...

    Java数据类型和MySql数据类型对应表

    在 Java 编程中,了解 Java 数据类型和 MySql 数据类型的对应关系非常重要。这是因为在 Java 应用程序中,我们经常需要与数据库进行交互,而 MySql 是一种常用的关系数据库管理系统。在本文中,我们将详细介绍 Java ...

    Java中的“枚举类型

    - **枚举元素的实例性质**:枚举中的每个元素实际上是一个对象实例,这意味着可以为这些元素添加额外的属性和行为。例如,为不同的季节分配特定的颜色或温度范围。 - **枚举类的可扩展性**:除了定义枚举元素外,...

    Java枚举数据类型.doc

    Java枚举数据类型是Java 1.5及以后版本引入的一种强大的、类型安全的数据结构,旨在解决传统int常量或String常量表示枚举时存在的问题。在Java中,枚举是一种特殊的类,用于定义一组预定义的常量,这些常量在程序中...

    java中的枚举类型

    Java 中的枚举类型是一种特殊的数据类型,它允许我们定义一组命名的常量。枚举类型骨子里是一个类别,所以您编译完成后,会产生一个 `.class` 档案。 枚举类型的用法 在 Java 中,我们可以使用 `enum` 关键词来...

    Java枚举类型.pdf

    枚举类型不仅提供了类型安全,还允许我们在枚举中添加方法和属性,从而增加更多的功能。例如,清单3中的`Student`类使用枚举`Grade`来表示学生的成绩: ```java public class Student { private String firstName;...

    Java中的枚举类型Enum示例源代码

    Java中的枚举类型`Enum`是面向对象编程中一种强大的工具,它允许程序员定义自己的常量集合。在Java中,枚举类型不是简单的常量数组,而是一种完整的类,具有类的所有特性,如方法、构造函数和继承。下面将详细探讨`...

    Java高新技术_java5的枚举的基本应用

    总结来说,Java 5引入的枚举类型极大地提高了代码的可读性和安全性,同时提供了灵活的抽象能力,允许我们在枚举中定义方法、属性和构造函数。通过使用枚举,开发者可以更好地管理常量,防止类型错误,并利用`switch`...

    Java常用类和枚举类型.pdf

    在Java编程语言中,为了能够把基本数据类型当作对象处理,提供了包装类的概念。包装类是将基本数据类型封装成类的形式,使它们可以拥有对象的特性。Java语言中一共有八个基本数据类型,它们分别是byte、short、int、...

    java基本数据类型习题(选择24).pdf

    在Java中,有八种基本数据类型:byte、short、int、long、float、double、boolean和char。这些基本数据类型的知识点是Java编程的基础,以下是对Java基本数据类型习题的解析。 1. 合法的标识符:Java标识符是由字母...

    高阶Java-Java枚举类型 enum 应用详解

    在Java编程语言中,枚举(enum)是一种特殊的类,用于定义一组固定的常量。它在许多场景下比使用常量或int类型的硬编码值更安全、更具可读性。本篇文章将深入探讨Java枚举的特性、用法以及如何在实际开发中充分利用...

Global site tag (gtag.js) - Google Analytics