暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

枚举类简单介绍

lebronchen 2018-09-10
695

今天来介绍一下枚举类(enum),枚举类有以下几个特性:

  • enum和class、interface的地位一样

  • 使用enum定义的枚举类继承java.lang.Enum,而不是java.lang.Object

  • 枚举类的构造方法必须是私有的


相对于使用常量,枚举类更加直观,类型安全。使用常量会有以下几个缺陷:

  • 类型不安全。若一个方法中要求传入性别这个参数,用常量的话,形参就是int类型,开发者传入任意类型的int类型值就行,但是如果是枚举类型的话,就只能传入枚举类中包含的对象。

  • 没有命名空间。开发者要在命名的时候以GENDER_开头来识别不同性别。


1.基本枚举类

public enum Gender {
    MAN,WOMAN;
}

2.有参构造枚举类

  • 枚举类型后面的参数就是构造函数的参数

  • 枚举的构造函数必须为私有构造方法


public enum Gender {
    MAN("男"),
    WOMAN("女");

    private String name;

    private Gender(String name) {
        this.name = name;
    }
    public String getName(){
        return name;
    }
}

3.枚举的抽象方法

  • 枚举类有抽象方法,可以选择使用匿名内部类的方式创建枚举对象,重写抽象方法


public enum Gender {
    MAN("男") {
        @Override
        public String getEnName() {
            //do something
            return "man";
        }
    },
    WOMAN("女") {
        @Override
        public String getEnName() {
            //do something
            return "woman";
        }
    };

    private String name;

    private Gender(String name) {
        this.name = name;
    }
    public String getName(){
        return name;
    }
    public abstract String getEnName();
}



扫码关注,不迷路


文章转载自lebronchen,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论