java中的枚举类

枚举类的使用

  1. 枚举的使用场景:类的对象只有有限个,确定的(即一组常量),举例如下:
    星期:Monday(星期一)、…、Sunday(星期天)
    性别:Man(男)、Woman(女)
    季节:Spring(春节)…Winter(冬天)
    支付方式:Cash(现金)、WeChatPay(微信)、Alipay(支付宝)、BankCard(银行卡)、CreditCard(信用卡)
    就职状态:Busy、Free、Vocation、Dimission
    订单状态:Nonpayment(未付款)、Paid(已付款)、Delivered(已发货)、
    Return(退货)、Checked(已确认)Fulfilled(已配货)、
    线程状态:创建、就绪、运行、阻塞、死亡
  2. 枚举类的属性
    枚举类对象的属性不应允许被改动, 所以应该使用 private final 修饰
    枚举类的使用 private final 修饰的属性应该在构造器中为其赋值
    若枚举类显式的定义了带参数的构造器, 则在列出枚举值时也必须对应的传入参数
  3. 使用enum定义枚举类
    使用 enum 定义的枚举类默认继承了 java.lang.Enum类,因此不能再继承其他类
    枚举类的构造器只能使用 private 权限修饰符
    枚举类的所有实例必须在枚举类中显式列出(, 分隔 ; 结尾)。列出的实例系统会自动添加 public static final 修饰
    必须在枚举类的第一行声明枚举类对象
public enum SeasonEnum {
	SPRING("春天","春风又绿江南岸"),
	SUMMER("夏天","映日荷花别样红"),
	AUTUMN("秋天","秋水共长天一色"),
	WINTER("冬天","窗含西岭千秋雪");
	private final String seasonName;
	private final String seasonDesc;
	private SeasonEnum(String seasonName, String seasonDesc) {
		this.seasonName = seasonName;
		this.seasonDesc = seasonDesc; 
	}
	public String getSeasonName() {
		return seasonName; 
	}
	public String getSeasonDesc() {
		return seasonDesc; 
	} 
}
  1. 枚举类的主要方法
    values():返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值。
    valueOf(String str):可以把一个字符串转为对应的枚举类对象。要求字符串必须是枚举类对象的“名字”。如不是,会有运行时异常:IllegalArgumentException。
    toString():返回当前枚举类对象常量的名称
  2. 实现接口的枚举类
    和普通 Java 类一样,枚举类可以实现一个或多个接口
    若每个枚举值在调用实现的接口方法呈现相同的行为方式,则只要统一实现该方法即可。
    若需要每个枚举值在调用实现的接口方法呈现出不同的行为方式,则可以让每个枚举值分别来实现该方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值