java枚举类型enum用法有哪些?该怎么使用?

TheDisguiser 2020-05-05 19:16:03 java常见问答 6837

在java中有着枚举这么一个小功能,虽然不太常用,但一些特殊时候就会使用到,下面小编就来介绍一下枚举的各种用法,希望对你们有所帮助。

一、常量

在以前,我们定义常量一般是靠static来定义,但JDK1.5之后,我们就可以把所有相关常量分到同一个枚举类型里,而且在枚举里提供了比常量更多的方法。

例:

public enum Color
{
    RED
    , GREEN
    , BLANK
    , YELLOW
}

二、枚举中插入新方法

如果需要自定义自己方法的话,必须在enum实例序列的最后添加一个分号。且在 Java中, 必须先定义 enum 实例。

例:

public enum Color
{
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色"
        , 4); // 成员变量 private String name;
    private int index; // 构造方法 private Color(String name, int index) {
    this.name = name;
    this.index = index;
}
// 普通方法
public static String getName(int index)
{
    for (Color c: Color.values())
    {
        if (c.getIndex() == index)
        {
            return c.name;
        }
    }
    return null;
}
// get set 方法
public String getName()
{
    return name;
}
public void setName(String name)
{
    this.name = name;
}
public int getIndex()
{
    return index;
}
public void setIndex(int index)
{
    this.index = index;
}
}

三、接口实现

所有枚举都继承自java.lang.Enum类。Java 不支持多继承,所以枚举对象不能继承其他类,只能实现接口。

public interface Behaviour
{
    void print();
    String getInfo();
}
public enum Color implements Behaviour
{
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
    // 成员变量 private String name;
    private int index;
    // 构造方法 private Color(String name, int index) { this.name = name;
    this.index = index;
}
//接口方法 @Override public String getInfo() { return this.name;
}
//接口方法
@Override public void print()
{
    System.out.println(this.index + ":" + this.name);
}
}

四、接口组织枚举

public interface Food
{
    enum Coffee implements Food
    {
        BLACK_COFFEE
        , DECAF_COFFEE
        , LATTE
        , CAPPUCCINO
    }
    enum Dessert implements Food
    {
        FRUIT
        , CAKE
        , GELATO
    }
}
/** * 测试继承接口的枚举的使用(by 大师兄 or 大湿胸。) */
private static void
testImplementsInterface()
{
    for (Food.DessertEnum dessertEnum: Food.DessertEnum.values())
    {
        System.out.print(dessertEnum + " ");
    }
    System.out.println();
    //这个coffee单独到一个文件去实现food接口,不是在接口内部。
    for (CoffeeEnum coffee: CoffeeEnum.values())
    {
        System.out.print(coffee + " ");
    }
    System.out.println();
    System.out.println(food);
    food = CoffeeEnum.BLACK_COFFEE;
    System.out.println(food);
}

以上就是介绍的一些枚举常用方法了,更多java入门知识请关注我们的网站了解吧。