java枚举总结

枚举


什么是枚举

枚举指的是在一定范围内取值,这个值必须是枚举类型中的任意一个,而且只能取一个

枚举的特点

  1. 枚举本质是一个Java类,可以有成员变量,成员方法,构造方法,静态方法,抽象方法,但是没有意义
  2. 枚举的所有成员出现在枚举常量的后面
  3. 如果一个枚举没有成员,那么枚举常量最后面的分号可以省略不写,如果有一个成员,那么分号必须写上
public class EnumDemo02 {
	public static void main(String[] args) {
		TrafficLight tl = TrafficLight.RED;
		
		switch (tl) {
		case RED:
			TrafficLight.RED.desc();
			break;
		case GREEN:
			TrafficLight.GREEN.desc();
			break;
		case YELLOW:
			TrafficLight.YELLOW.desc();
			break;

		default:
			break;
		}
	}
}

enum TrafficLight {
	// private int age;
	RED {
		@Override
		public void desc() {
			System.out.println("红色");
		}
	}, GREEN {
		@Override
		public void desc() {
			System.out.println("绿色");
		}
	}, YELLOW {
		@Override
		public void desc() {
			System.out.println("黄色");
		}
	};
	
	private String name;
	private TrafficLight() {}
	private TrafficLight(String name) {
		this.name = name;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	public static void staticMethod() {
		System.out.println("TrafficLight.staticMethod()");
	}
	
	public abstract void desc();
}

枚举的常用方法

public class EnumDemo03 {
	public static void main(String[] args) {
		int cmp = Weekend.MONDAY.compareTo(Weekend.FRIDAY);
		System.out.println(cmp);
		System.out.println("===============");
//		method1();
//		method2();
		method3();
	}
	
	// 已知枚举对象求枚举名称,求枚举下标
	public static void method1() {
		Weekend w = Weekend.WEDNESDAY;
		System.out.println(w.name());
		System.out.println(w.ordinal());
	}
	
	// 已知枚举名称求枚举对象,求枚举下标
	public static void method2() {
		String name = "SATUARDAY";
		Weekend w = Weekend.valueOf(name);
		System.out.println(w);
		System.out.println(w.ordinal());
	}
	
	// 已知枚举的下标,获取枚举的对象和名称
	public static void method3() {
		int index = 3;
		Weekend w = Weekend.values()[index];
		System.out.println(w);
		System.out.println(w.name());
	}
}

enum Weekend {
	MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATUARDAY, SUNDAY
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值