Java enum枚举的用法

一. 出现背景:

在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;
		}
	}
}
时间: 2024-11-07 00:34:58

Java enum枚举的用法的相关文章

Java enum(枚举)的用法详解(转)

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

Java Enum枚举

1.代码 import java.lang.*; // enum showing Mobile prices enum Mobile { Samsung(400), Nokia(250),Motorola(325); int price; Mobile(int p) { price = p; } int showPrice() { return price; } } public class EnumDemo { public static void main(String args[]) {

Java enum枚举类型

java的枚举类型详解: 简单示例: public enum Color{ RED,BLUE,BLACK,YELLOW,GREEN } 复杂示例(带自定义构造方法与类型) public enum EnumTest { FRANK("The given name of me"), LIU("The family name of me"); private String context; private String getContext(){ return this.

Java enum 枚举还可以这么用

在大部分编程语言中,枚举类型都会是一种常用而又必不可少的数据类型,Java中当然也不会例外.然而,Java中的Enum枚举类型却有着许多你意想不到的用法,下面让我们一起来看看. 1.可以在enum中添加变量和方法 先来看一段代码示例: public enum State { Normal("正常态", 1), Update("已更新", 2), Deleted("已删除", 3), Fired("已屏蔽", 4); // 成员

Java enum枚举是怎么回事

Java1.5之前是没有枚举的,如果想使用类似枚举的特性,也即是需要使用常量的时候,可以通过如下代码完成: Java中的常量定义: publicclassSex2 { publicstaticfinalintGIRL = 1; publicstaticfinalintBOY = 2; publicstaticvoid main(String[]args) { System.out.println(Sex2.GIRL); } } 但是这样做有个缺点,就是不够直观,我们打印出Sex2.GIRL,看到

Java Enum枚举 遍历判断 四种方式(包括 Lambda 表达式过滤)

package com.miracle.luna.lambda; import java.util.Arrays; /** * @Author Miracle Luna * @Date 2019/6/9 23:40 * @Version 1.0 */ public enum AlarmGrade { ATTENTION("attention", "提示"), WARNING("warning","警告"), SERIOUS(&

Java常用枚举的用法

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

java Enum 枚举

看了点东西,发现对java枚举不是很了解,然后就找找看看记记了. 为什么要用枚举呢?枚举再jdk1.5之前是没有的,1.5之后java才支持枚举.为什么要用枚举呢? 如果一个变量只有几种可能的值,这时候我们可以用int.String或者其他类型的变量来表示,虽然可以这样做但是,这样我们无法保证 使用时候的值一定是我们约定好几个值,这样就难免产生不必要的麻烦,而枚举就能避免这样的错误,枚举类型其实就是将变量的值一一列举出来, 变量的值只限于列举出来的值的范围内,一旦定义了枚举类型变量,那么该变量只

java enum(枚举)使用详解 + 总结

enum 的全称为 enumeration, 是 JDK 1.5  中引入的新特性,存放在 java.lang 包中. 下面是我在使用 enum 过程中的一些经验和总结,主要包括如下内容: 1. 原始的接口定义常量 2. 语法(定义) 3. 遍历.switch 等常用操作 4. enum 对象的常用方法介绍 5. 给 enum 自定义属性和方法 6. EnumSet,EnumMap 的应用 7. enum 的原理分析 8. 总结 原始的接口定义常量 ? public interface ICon