枚举类型学习

枚举类型


1.什么是枚举类型

类的实例个数是有限的,但又不是很多。枚举像一个类,又像一个数组。使用Enum声明的枚举,反编译后发现是final修饰的class,所以他不可以有子类


2.枚举类型有什么不用
1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例。 
2.所有枚举值都是public , static , final的。


3.枚举类型写法举例
写法一:
public enum SeasonEnum {
    // 3.如何得到这个类的实例?实例个数设置为类的常量
    SPRING("春天", "spring"),
    SUMMER("夏天", "summer"),
    FAIL("秋天", "autumn"),
    WINTER("东天","winter");//注意逗号和分号
    
    // 2.属性(季节名,季节序号),类的实例不允许修改,实例的属性也不允许修改
    private final String chName;
    private final String  enName;
    // 1.私有化构造方法
    private SeasonEnum(String chName, String enName) {
        this.chName = chName;
        this.enName = enName;
    }
    // 4.需要get,set方法么?不需要set,需要get
public String getChName() {
return chName;
}
public String getEnName() {
return enName;
}

public static void main(String[] args){
SeasonEnum[] seArr = SeasonEnum. values();
for(SeasonEnum se:seArr){
System.out.println(se);
}
System.out.println(SeasonEnum. valueOf("SPRING"));
}
}
写法二:
public enum Color {  
  RED, GREEN, BLANK, YELLOW  
}  
4.枚举类型提供2个方法

Enum提供了values方法,这个方法使你能够方便的遍历所有的枚举值。

Enum提供了valueOf方法

5.开发过程中枚举类型使用举例

再枚举类型中写静态代码块,写一个get方法,使传入一个参数的时候,能返回这个参数对应的值

public String getEnNameByChName(String chName) {
return statesMap.get(chName);
}

public static final Map<String,String> statesMap = new HashMap<String,String>();
static {
SeasonEnum[] seArr = SeasonEnum.values();
for(SeasonEnum se:seArr){
statesMap.put(se.getChName(), se.getChName());
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值