Java枚举简介

1.简介

将相关常量分组到一个枚举类型里,用于定义有限数量的一组同类常量,例如:

错误级别:低、中、高、急

一年的四季:春、夏、秋、冬

商品的类型:美妆、手机、电脑、男装、女装...

在枚举类型中定义的常量是给枚举类型的实例

2.定义格式

(1)权限修饰符 enum 枚举名称{

实例1,实例2、实例3、、、

}

public enum Enum {
    LOW(1),HIGH(100);
    private int leverValue;

    Enum(int leverValue) {
        this.leverValue = leverValue;
    }

    public int getLeverValue() {
        return leverValue;
    }

    public void setLeverValue(int leverValue) {
        this.leverValue = leverValue;
    }
}

(2)直接设置

public enum Enum {
  
    LOW,MIDUM,HIGH;
}

3.常用方法

System.out.println(Enum.HIGH.compareTo(Enum.LOW));//比较两者的位置
        System.out.println(Enum.HIGH.getLeverValue());//获取值
        System.out.println(Enum.HIGH.equals(Enum.LOW));//比较两者是否相等
        System.out.println(Enum.HIGH.ordinal());//这个枚举实例的顺序
        System.out.println(Enum.HIGH.name());//枚举的名字
        System.out.println(Enum.values().length);//枚举实例的长度
        System.out.println(Enum.HIGH.getDeclaringClass());//枚举来自哪个

4.实现接口的枚举类

所有的枚举都继承自Java.Lang.Enum,由于Java不支持多继承,所以枚举对象不能再继承其他类,每个枚举对象都可以实现自己的抽象方法。

public interface LShow{
void show();
}
public enum Level1 implements LShow{
Low(30){
@override
public void show(){
//...
}
},MEDIUM(15){
@override
public void show(){
//...
}
}
};
private int levelValue;
private Level(int levelValue){
this.levelValue=levelValue;
}

5.注意事项

(1)一旦定义了枚举,最好不要妄图修改里面的值,除非修改是必要的。

(2)枚举类默认继承的是Java.Lang.Enum类而不是Object类

(3)枚举类不能有子类,因为其枚举类默认被fanal修饰。

(4)只能有private构造方法。

(5)switch中使用枚举时,直接使用常量名,不用携带类名。

(6)不能定义name属性,因为自带name属性。

(7)不要为枚举类中的属性提供set方法,不符合枚举设计初衷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值