Java——枚举类的使用

it2023-02-11  48

目录

枚举格式主要方法 实现接口的枚举类注意事项

枚举

用于定义有限数量的一组同类常量。

例如: 错误级别: 低、中、高、急 一年的四季: 春、夏、秋、冬 商品的类型: 美妆、手机、电脑、男装、女装

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

格式
权限修饰符 enum 枚举名称{ 实例1,实例2,实例3,实例4; } public enum Level2 { LOW(1),MEDIUM(50),HIGH(100); private int levelValue; private Level2(int levelValue){ this.levelValue=levelValue; } public int getLevelValue() { return levelValue; } }
主要方法

Enum是所有Java语言枚举类型的公共基本类(注意Enum是抽象类),以下是它的常见方法:

返回类型方法名称方法说明intcompareTo(E o)比较此枚举与指定对象的顺序booleanequals(Object other)当指定对象等于此枚举常量时,返回trueClass<?>getDeclaringClass()返回与此枚举常量的枚举类型相对应的Class对象Stringname()返回此枚举常量的名称,在其枚举声明中对其进行声明intordinal()返回枚举常量的叙述(它在枚举声明中的位置,其中初始常量序数为零)StringtoString()返回枚举常量的名称,它包含在声明中static<T extends Enum> Tstatic valueOf(Class enumType,String name)返回带指定名称的指定枚举类型的枚举常量

实现接口的枚举类

所有的枚举都继承自java.lang.Enum类。由于Java不支持多继承,所以枚举对象不能再继承其他类。 但是可以通过实现接口来实现更多功能,且每个枚举对象都可以实现自己重写的方法。

public enum Level3 implements LShow{ LOW(){//小括号是在调用构造方法,可写,可不写 @Override public void show() { System.out.println("低级别"); } },MEDIUM{ @Override public void show() { System.out.println("中级别"); } },HIGH{ @Override public void show() { System.out.println("高级别"); } }; } interface LShow{ void show(); }

注意事项

一旦定义了枚举,最好不要妄图修改里面的值,除非修改是必要的枚举类默认继承的是java.lang.Enum类而不是Object类枚举不能有子类,因为其枚举类默认被final修饰只能有private构造方法switch中使用枚举时,直接使用常量名,不用携带类名不能定义name属性,因为自带name属性不要为枚举类型中的属性提供set方法,不符合枚举最初设计初衷
最新回复(0)