enum枚举类

如何实现枚举类:

1.不需要提供setXXX方法,因为枚举对象通常为只读。

2.对枚举的对象用final static 修饰。

3.枚举对象名一般情况为大写,按常量的命名规范.

4.枚举对象也可以有多个属性。

5.构造器被私有化

这是使用自定义类实现枚举:

class Season{
    private String name;
    private String description;
    private  String getName(){
        return  name;
    }
    public String getDescription(){
        return description;
    }
    private Season(String name, String description) {
        this.name = name;
        this.description = description;
    }
    public final static Season SPRING = new Season("春天","暖");
    public final static Season SUMMER = new Season("夏天","热");
    public final static Season AUTUMN = new Season("秋天","凉");
    public final static Season WINTER = new Season("冬天","冷");
}

通过enum关键字优化后:

enum Season{
    SPRING("春天","暖"),SUMMER("夏天","热"),AUTUMN("秋天","凉"),WINTER("冬天","冷");
    private String name;
    private String description;

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

    public String getName() {
        return name;
    }

    public String getDescription() {
        return description;
    }
}

二者的效果一样。

当我们使用enum关键字开发了一个枚举类,该枚举类会隐式的继承Enum类(可以使用javap反编译查看)。

传统的 public final static Season SPRING = new Season("春天","暖");简化为SPRING("春天","暖");意思是创建了SPRING这个枚举对象,并调用了两个参数的构造方法。

当使用无参的构造器创建了枚举对象,后面的小括号和实参列表可以省略,如SPRING;

当创建多个枚举对象时,用逗号相连,最后一个用分号结尾。

创建枚举对象的代码必须位于枚举类的第一行。

用enum关键字后,就不能继承其他的类了,因为enum默认继承Enum,但是可以去实现接口

enum 类名 implements 接口1,接口2{}

创建了枚举类,但又想创建枚举类对象,可以用枚举类名.属性名,然后让定义的枚举类对象指向它。

例如:Season season  = Season.SPRING;这样就得到一个名为season,指向SPRING的一个Season类对象,可以使用season来调用该类方法

enum的常用方法:

其中compareTo方法返回的是两个枚举常量编号的差。未重写的toString方法和name方法一样。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值