【JavaSE】【常用类05】 枚举类

手动定义枚举类


public class Season {
    //todo 2.定义静态常量属性,类型为自己
    public static final Season SPRING = new Season();
    public static final Season SUMMER = new Season();
    public static final Season AUTUMN = new Season();
    public static final Season WINTER = new Season();

    //todo 1.私有化构造器
    private Season(){}

    public String toString(){
        if(this == SPRING){
            return "SPRING";
        }else if(this == SUMMER){
            return "SUMMER";
        }else if(this == AUTUMN){
            return "AUTUMN";
        }else{
            return "WINTER";
        }
    }

    public static void main(String[] args) {
        Season s = Season.SPRING;
        System.out.println(s);
    }

}

enum定义枚举类

public enum Season {

    //它们实际上都是public static final修饰的常量对象。
    SPRING,SUMMER,AUTUMN,WINTER;


    public static void main(String[] args) {
        Season s = Season.SPRING;
        switch(s){
            case SPRING:
                System.out.println("春暖花开");break;
            case SUMMER:
                System.out.println("夏日炎炎");break;
            case AUTUMN:
                System.out.println("秋高气爽");break;
            case WINTER:
                System.out.println("白雪皑皑");break;
        }
    }

}

枚举的特别说明

(1)枚举中定义属性

  • 枚举类对象的属性不应允许被改动, 所以应该使用 private final修饰。不是语法要求,而是语义要求。
  • 枚举类的使用 private final 修饰的属性应该在构造器中为其赋值。
  • 若枚举类显式的定义了带参数的构造器, 则在列出枚举值时也必须对应的传入参数。
enum Week{
	MONDAY("星期一"),
	TUESDAY("星期二"),
	WEDNESDAY("星期三"),
	THURSDAY("星期四"),
	FRIDAY("星期五"),
	SATURDAY("星期六"),
	SUNDAY("星期日");
	private final String DESCRPTION;

	private Week(String dESCRPTION) {
		DESCRPTION = dESCRPTION;
	}
	public String toString(){
		return DESCRPTION;
	}
}

(2)枚举类实现接口(了解)

若每个枚举值在调用实现的接口方法呈现相同的行为方式,则只要统一实现该方法即可。
若需要每个枚举值在调用实现的接口方法呈现出不同的行为方式, 则可以让每个枚举值分别来实现该方法

interface Change{
	void degenerate();
}
interface Checkable{
	void check();
}
enum Gender implements Change,Checkable{
	MAN{
		public void degenerate(){
			System.out.println("咔嚓一刀");
		}
	},WOMAN{
		public void degenerate(){
			System.out.println("比较复杂");
		}
	};
	public void check(){
		System.out.println("脱光");
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值