码迷,mamicode.com
首页 > 编程语言 > 详细

Java enum枚举的用法

时间:2014-10-23 19:22:45      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   color   os   ar   使用   java   sp   

一. 出现背景:

在JDK1.5之前,我们定义常量是这样的:public static final String RED = “RED”;

在JDK1.5中加入了枚举类型,我们可以把相关的常量分组到一个枚举类中:

public enum Color {
	RED, GREEN, BLUE;
}

使用的时候可以这样:Color c = Color.RED


二. 枚举特点:

1. 枚举enum是一个特殊的Java类,它继承自java.lang.Enum,继承了很多Enum的方法。但枚举类是一个不可以被继承的final类

2. 枚举类可以定义在interface或class中,当然枚举类型中有构造函数、方法、数据域:

public interface MyConstants {
	enum Color {
		RED("RED", 1), GREEN("GREEN", 2), BLUE("BLUE", 3);

		String desc;

		Integer value;

		private Color(String desc, Integer value) {
			this.desc = desc;
			this.value = value;
		}
	}

	enum Light {
		RED, GREEN, YELLOW;
	}
}

使用:MyConstants.Color.RED


3. 枚举类中的够早期和普通类的构造器有些不同:

(a). 构造器只是在构造枚举值的时候被调用

(b). 构造器只能私有,这样可以保证外部代码无法新构建枚举类的实例


4. 所有枚举类继承了Enum的方法,下面是这些方法使用介绍:

(a). ordinal()  返回枚举值在枚举种类的顺序,这个顺序根据枚举值声明的顺序

(b). compareTo()  Enum实现了java.lang.Comparable接口,它返回的是两个枚举值的顺序之差,但这两个枚举值必须属于同一个枚举类

(c). values   返回一个包含全部枚举值的数组

(d). toString  返回枚举常量的名称

(e). valueOf  类似toString

(f). equals   比较两个枚举类对象的应用


5. 在switch中使用:

public enum Light{
	RED, GREEN, YELLOW;
}

class Test {
	public static void main(String[] args) {
		Light light = Light.RED;
		switch (light) {
		case RED:
			System.out.println("it's red");
			break;
		case GREEN:
			System.out.println("it's green");
			break;
		case YELLOW:
			System.out.println("it's yellow");
			break;
		}
	}
}



Java enum枚举的用法

标签:des   style   blog   color   os   ar   使用   java   sp   

原文地址:http://blog.csdn.net/zdp072/article/details/40401331

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!