1、什么是枚举?

JDK1.5引入了新的类型——枚举,最初用于表示一组信号,如下代码所示:

enum Signal 
{  
    GREEN, YELLOW, RED  
}   

后来,延伸成一组相关的常量。我们知道,函数常量是通过final进行修饰的,而类常量是通过static final修饰的,而枚举则是通过enum关键字修饰的。

2、枚举如何使用?

在使用枚举之前,我们要明白字面量。只有深刻的掌握了字面量才能更好的使用枚举,因为枚举的本质就是字面量。

与字面量相对应的是变量。变量,顾名思义,可以进行变动的某类东西。变量由三部分做成:变量类型,变量名,变量值,如代码所示:int a = 10;在这个代码中,a是变量名,代表着一个变量。仅仅看一眼a,我们压根不知道它的值是什么,但是10则不一样,它就代表10,此时10称为“字面量”。除此以外,像"Tom"、True等在编码中出现的,我们能一眼懂的东西,都是字面量。字面量通常分为:字母字面量、数字字面量、True/False逻辑字面量等,如今又增加了枚举字面量。

因为枚举的本质就是字面量,所以如下代码输出的是:RED

public class Test
{
    enum Color
    {
        RED, GREEN, BLUE;
    }
 
    public static void main(String[] args)
    {
        Color c1 = Color.RED;
        System.out.println(c1);
    }
}

3、枚举字面量、字符字面量、数字字面量的关系

字面量通常分为:字母字面量、数字字面量、True/False逻辑字面量等,如今又增加了枚举字面量。那么枚举字面量和其他的字面量有什么关系吗?有,很有关系,它们之间可以互换。

3.1、enum<->int

enum -> int,对应于:

int i = enumType.value.ordinal();

int -> enum,对应于:

enumType b= enumType.values()[i];

3.2、enum<->String

enum -> String对应于:

enumType.name()

String -> enum对应于:

enumType.valueOf(name); 

标签: none


添加新评论