枚举类专题

2021-05-26  本文已影响0人  攻城老狮

1 枚举类的特征

2 自定义类

2.1 自定义类的特征

2.2 自定义类实现枚举类的步骤

2.3 自定义类的使用

public class DefineEnum {
    public static void main(String[] args) {
        System.out.println(Role.ADMIN);
        System.out.println(Role.MANAGER);
        System.out.println(Role.GUEST);
    }
}

class Role{
    private String name;
    private String desc;

    public static final Role ADMIN = new Role("admin","desc admin");
    public static final Role MANAGER = new Role("manager","desc manager");
    public static final Role GUEST = new Role("guest","desc guest");

    private Role(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 "Role{" +
                "name='" + name + '\'' +
                ", desc='" + desc + '\'' +
                '}';
    }
}

3 enum关键字实现枚举

3.1 enum关键字的特征

3.2 enum实现上述枚举

public class EnumClass {
    public static void main(String[] args) {
        System.out.println(Role.ADMIN);
        System.out.println(Role.MANAGER);
        System.out.println(Role.GUEST);
    }
}

enum  Role{
    ADMIN("admin","desc admin"),MANAGER("manager","desc manager"),GUEST("guest","desc guest");

    private String name;
    private String desc;


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

    public String getName() {
        return name;
    }

    public String getDesc() {
        return desc;
    }
}

3.3 enum常用方法

public class EnumClass {
    public static void main(String[] args) {
        //1.toString Enum类已经重写,返回当前对象名字,子类可重写
        System.out.println(Role.ADMIN.toString());
        //2.name 返回当前对象名,子类不能重写 final的
        System.out.println(Role.ADMIN.name());
        //3.ordinal 返回当前对象的位置号,默认从0开始
        System.out.println(Role.GUEST.ordinal());
        //4.values 返回当前枚举类所有的常量
        Role[] roles = Role.values();
        for (Role role : roles) {
            System.out.println(role);
        }
        //5.valueOf 将字符串转换为枚举对象,要求字符串必须为已有常量名
        Role manager = Role.valueOf("MANAGER");
        System.out.println(manager);
        //6.compareTo 比较两个枚举类常量,比较的是编号
        System.out.println(Role.ADMIN.compareTo(Role.GUEST));
    }
}

enum  Role{
    ADMIN("admin","desc admin"),MANAGER("manager","desc manager"),GUEST("guest","desc guest");

    private String name;
    private String desc;


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

    public String getName() {
        return name;
    }

    public String getDesc() {
        return desc;
    }
}
ADMIN
ADMIN
2
ADMIN
MANAGER
GUEST
MANAGER
-2

3.4 enum实现接口

上一篇 下一篇

猜你喜欢

热点阅读