亲宝软件园·资讯

展开

Java枚举类

世界尽头与你 人气:0

1.引入枚举类

Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等。

Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。

示例:

enum Color 
{ 
    RED, GREEN, BLUE; 
} 

2.实现枚举类

接下来我们来看一个一个简单的DEMO示例:

/**
 * java枚举
 */
public class Enum {
    public static void main(String[] args) {
        System.out.println(Season.SPRING);
        System.out.println(Season.SUMMER);
        System.out.println(Season.AUTUMN);
        System.out.println(Season.WINTER);
    }
}

// 定义的枚举类
enum Season {
    // 枚举定义的常量对象必须在最前面
    SPRING("春天","万物复苏"),
    SUMMER("夏天","烈日炎炎"),
    AUTUMN("秋天","硕果累累"),
    WINTER("冬天","寒冷刺骨");

    private String name;
    private String desc;

    private Season(String name, String desc) {
        this.name = name;
        this.desc = desc;
    }

    public String getName() {
        return name;
    }

    public String getDesc() {
        return desc;
    }

    @Override
    public String toString() {
        return "Season{" +
                "name='" + name + '\'' +
                ", desc='" + desc + '\'' +
                '}';
    }
}

输出:

Season{name='春天', desc='万物复苏'}
Season{name='夏天', desc='烈日炎炎'}
Season{name='秋天', desc='硕果累累'}
Season{name='冬天', desc='寒冷刺骨'}

3.枚举类的使用注意事项

当我们使用enum关键字来开发一个枚举类的时候,默认会继承Eunm类,而且是一个final修饰的类

如果我们使用的是无参构造器,则枚举中可以直接省略小括号

// 枚举定义的常量对象必须在最前面
SPRING("春天", "万物复苏"),
SUMMER("夏天", "烈日炎炎"),
AUTUMN("秋天", "硕果累累"),
WINTER("冬天", "寒冷刺骨"),
Other, Shit;

Season() {
}

private Season(String name, String desc) {
    this.name = name;
    this.desc = desc;
}

4.枚举的常用方法

我们用具体的程序示例来进行枚举常用方法的演示:

/**
 * 枚举类方法
 */
public class EnumMethod {
    public static void main(String[] args) {
        Season autumn = Season.AUTUMN;
        // 获取当前枚举对象的名称
        System.out.println(autumn.name());

        // 输出该枚举对象的次序,从0开始
        System.out.println(autumn.ordinal());

        // 返回所有的枚举对象
        Season[] values = Season.values();
        for (Season value : values) {
            System.out.println(value);
        }

        // 将字符串转化为枚举对象,要求字符串必须为已有的常量名,否则会爆出一个异常
        Season autumn1 = Season.valueOf("AUTUMN");
        System.out.println(autumn1);

        // 比较两个枚举常量,比较的就是编号
        // AUTUMN的编号减去SUMMER的编号
        System.out.println(Season.AUTUMN.compareTo(Season.SUMMER));
    }
}

输出:

AUTUMN
2
Season{name='春天', desc='万物复苏'}
Season{name='夏天', desc='烈日炎炎'}
Season{name='秋天', desc='硕果累累'}
Season{name='冬天', desc='寒冷刺骨'}
Season{name='null', desc='null'}
Season{name='null', desc='null'}
Season{name='秋天', desc='硕果累累'}
1

5.enum细节

如果使用了enum,则该类不能再继承其他的类,因为它默认继承Enum父类,但是可以进行接口实现

加载全部内容

相关教程
猜你喜欢
用户评论