Java枚举enum使用及相关的操作

在Java1.5之后,引入了枚举新的特性,在之前,java有两种定义新类型的方式:类和接口。但是在特殊情况下,满足不了我们的需求,比如我们定义一个Color类,它只能有Red,Blue,Green三种值,对于其他的值来说都是无效的。为引入枚举之前,我们一般使用其私有化其构造方法,然后在其内部实例化三个常量,然后再取值。这样不仅繁琐,而且带来了更多不安全的问题。

package andy.enumtype.test;

/**
 * @author Zhang,Tianyou
 * version:2014-11-24 上午11:03:06
 *
 *
 */

public class Color {

	public static final Color RED = new Color("红色");
	public static final Color GREEN = new Color("绿色");
	public static final Color BLUE = new Color("蓝色");

	private Color(String name) {
		this.name = name;
	}

	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public static Color getInstance(int i) {
		switch (i) {
		case 0:
			return Color.RED;

		case 1:
			return Color.GREEN;

		case 2:
			return Color.BLUE;

		default:
			return null;
		}
	}

	public static void main(String[] args){
		Color color = Color.RED;
		System.out.println(color.getName());
	}

}

但是这样只能从RED BLUE GREEN 三个中获取值。

在枚举中如下实现:

package andy.enumtype.test;

/**
 * @author Zhang,Tianyou
 * version:2014-11-24 上午11:43:07
 *
 *
 */

public enum Color1 {

	RED("红色"), BLUE("蓝色"), GREEN("绿色");

	private Color1(String name) {
		this.name = name;
	}

	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public static void main(String[] args){
		Color1 color = Color1.RED;
		System.out.println(color.getName());
		//c.ordinal() 获取序号
		for (Color1 c : Color1.values()) {
			System.out.println(c.ordinal() + "----" + c.getName());
		}
	}

}

还支持EnumSet,和EnumMap等操作。

时间: 2024-08-10 09:35:49

Java枚举enum使用及相关的操作的相关文章

Java 枚举(enum) 详解7种常见的用法

用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. Java代码 public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强. Java代码 enum Signal { GREEN, YE

Java 枚举(enum) 常见用法

JDK1.5引入了新的类型--枚举.在 Java 中它虽然算个"小"功能,却给我的开发带来了"大"方便. 用法一:常量. 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. public enum Color { RED, GREEN, BLANK, YELLOW } 简单使用public class B {     public st

Java——枚举enum

枚举我认为:枚举简单的说也可以一种数据类型,只不过是这种数据类型只包含我们自定义的数据,它是一组有共同特性的数据的集合.举个简单例子,颜色也可以定义成枚举类型,它可以包含你自定义的任何颜色,当需要的时候,只需要通过枚举调用即可,另外比如季节(春夏秋冬).星期(星期一到星期日).衣服的号码(S.M.L.XL)等等这些具有共同特性的数据都可以定义枚举.下面是个例子: public class EnumTest { public static void main(String[] args) { Sc

Java枚举enum以及应用:枚举实现单例模式

枚举作为一个常规的语言概念,一直到Java5才诞生不得不说有点奇怪,以至于到现在为止很多程序员仍然更喜欢用static final的形式去命名常量而不使用,一般情况下,Java程序员用这种方式去实现枚举: class EnumByClass{ public static final int RED=0; public static final int GREEN=1; public static final int BLUE=2; } 这种方式实现的枚举也叫int枚举模式,尽管很常用,但是由in

java枚举enum

http://www.cnblogs.com/wenruo/p/5349614.html java的枚举通过关键字enum实现.可以理解为一个类,不过这个类由编译器自动加了一些方法. static values()方法用来按照enum常量的声明顺序 产生由这些常量值构成的数组 ordinal 表示某个特定enum常量的声明顺序 toString() 以显示每个enum实例的名字 可以在switch语句中使用,但是注意case处直接写常量,不加enum的名字. 1 enum Spiciness {

关于Java中枚举Enum的深入剖析

在编程语言中我们,都会接触到枚举类型,通常我们进行有穷的列举来实现一些限定.Java也不例外.Java中的枚举类型为Enum,本文将对枚举进行一些比较深入的剖析. 什么是Enum Enum是自Java 5 引入的特性,用来方便Java开发者实现枚举应用.一个简单的Enum使用如下. // ColorEnum.javapublic enum ColorEmun { RED, GREEN, YELLOW} public void setColorEnum(ColorEmun colorEnum) {

深入理解Java枚举类型(enum)

[版权申明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/71333103 出自[zejian的博客] 关联文章: 理解Java位运算 深入理解Java类型信息(Class对象)与反射机制 本篇主要是深入对Java中枚举类型进行分析,主要内容如下: 理解枚举类型 枚举的定义 枚举实现原理 枚举的常见方法 Enum抽象类常见方法 编译器生成的Values方法与ValueOf方法 枚举与Clas

java 枚举常用操作

在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. Java代码 public enum Color { } JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强. Java代码 enum Signal { } public class TrafficLight { public void change() {

【转】掌握java枚举类型(enum type)

原文网址:http://iaiai.iteye.com/blog/1843553 1   背景 在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量.之前我们通常利用public final static 方法定义的代码如下,分别用1 表示春天,2表示夏天,3表示秋天,4表示冬天. Java代码   public class Season { public static final int SPRING = 1; public static final int