java 枚举和常量_Java中枚举(enum)和常量的区别

在大多数情况,我们可使用枚举(enum),也可以使用常量来达到同样的目的,但是,使用枚举比直接使用常量有许多优势,本文对这两种方法进行介绍,并对他们的区别进行比较。

一、通常定义常量方法

我们通常利用public final static方法定义的代码如下,分别用1表示红灯,3表示绿灯,2表示黄灯。

public class Light {

/* 红灯 */

public final static int RED = 1;

/* 绿灯 */

public final static int GREEN = 3;

/* 黄灯 */

public final static int YELLOW = 2;

}

二、枚举类型定义常量方法

枚举类型的简单定义方法如下,我们似乎没办法定义每个枚举类型的值。比如我们定义红灯、绿灯和黄灯的代码可能如下:

public enum Light {

RED, GREEN, YELLOW;

}

我们只能够表示出红灯、绿灯和黄灯,但是具体的值我们没办法表示出来。别急,既然枚举类型提供了构造函数,我们可以通过构造函数和覆写toString方法来实现。首先给Light枚举类型增加构造方法,然后每个枚举类型的值通过构造函数传入对应的参数,同时覆写toString方法,在该方法中返回从构造函数中传入的参数,改造后的代码如下:

public enum Light {

// 利用构造函数传参

RED(1), GREEN(

你可能感兴趣的:(java,枚举和常量)