枚举

枚举的作用:

用于标志和分类

格式:

    修饰符 enum 枚举名称{
    第一行都是罗列枚举实例的名称。
}

枚举类反编译以后源代码:

	public final class Season extends java.lang.Enum<Season> {
	   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();
	
	   public static Season[] values();
	   public static Season valueOf(java.lang.String);
	}

从反编译的代码可以看出,枚举的底层实际上是已经实例化的常量

枚举的特点

  1. 枚举类是用final修饰的,枚举类不能被继承!
  2. 枚举类默认继承了java.lang.Enum枚举类。
  3. 枚举类的第一行都是常量,存储都是枚举类的对象。
  4. 枚举类的第一行必须是罗列枚举类的实例名称。
    所以:枚举类相当于是多例设计模式。

枚举的常用API:

  • 获取当前类的全部枚举实例 : public static Season[] values()
  • 获取枚举对象的索引: ordinal()
  • 获取枚举对象:枚举类.枚举
  • 用枚举名称点出枚举的字符串名称。 String name() (个人感觉没啥用)
  • 用枚举的字符串名称点出枚举的变量名:static <T extends Enum> T valueOf(Class enumType, String name) (个人感觉还是没什么用)

枚举的使用:

定义枚举

public enum Orientation {
    UP , DOWN , LEFT , RIGHT;
}

人物移动案例


public class EnumDemo {

    public static void main(String[] args) {
        move(Orientation.UP);
        move(Orientation.DOWN);
        move(Orientation.LEFT);
        move(Orientation.RIGHT);
        System.out.println(Orientation.UP.name());//输出结果:UP
        System.out.println(Orientation.valueOf("UP"));//输出结果:UP
    }

    public static void move(Orientation o){
        switch (o){
            case UP:
                System.out.println("玛丽奥往↑移动");
                break;
            case DOWN:
                System.out.println("玛丽奥往↓移动");
                break;
            case LEFT:
                System.out.println("玛丽奥往←移动");
                break;
            case RIGHT:
                System.out.println("玛丽奥往→移动");
                break;
        }
    }


枚举的好处

枚举写在方法的形参上,限定了传入的只能是枚举类型,这样我们就不能够随便传参数,只能传枚举定义好的参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值