java枚举类的简单使用

在JDK1.5 之前,我们定义常量都是: public static final… 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 枚举类实际上就是简化的多例化设计。多例化设计的特点是什么?
构造方法私有化。。构造方法私有化。。构造方法私有化。。

enum Color{   //定义一个枚举类
    HONGSE,LANSE,HUANGSE  //此处没有分号 此处生成了三个实例化对象
}

public class Test {
    public static void main(String args[]){
        Color temp=Color.HONGSE; //直接用类名调用对象
        System.out.println(temp);//HONGSE  说明toString方法重写了 直接返回对象名称
    }
}

在枚举类中提供了valuse()方法,这个方法会将枚举类全部对象以对象数组的形式返回。因为枚举中没有下标,我们没有办法通过下标来快速找到需要的枚举类,这时候,转变为数组之后,我们就可以通过数组的下标,来找到我们需要的枚举类。
我们先来拓展一下枚举类的结构,代码如下:

package com.Test.Demo.TesrDemo1;

public enum YanSe {
    HONG("红色",1),LAN("蓝色",2),HUANG("黄色",3),HEI("黑色",4);//此处定义了枚举对象 必须写在首行
    private String name;
    private int id;
    private YanSe(){//枚举类型构造方法不能用public声明

    }
    private YanSe(String name,int id){
        this.name=name;
        this.id=id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public int getId() {
        return id;
    }
}

我们再写一个main方法测试一下功能。

package com.Test.Demo.TesrDemo1;

public class TestDemo1 {
    public static void main(String args[]){
        YanSe[] temp1=YanSe.values();
        for(YanSe tt :temp1){
        System.out.println(tt+"--"+tt.getId()+"--"+tt.getName());
        }
    }
}
/*程序执行结果:
            HONG--1--红色
            LAN--2--蓝色
            HUANG--3--黄色
            HEI--4--黑色
*/


枚举类可以看做一种特殊的类,所以枚举类也可以实现接口,但是枚举类都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。

原文地址:https://www.cnblogs.com/fxzemmm/p/14847958.html