Java枚举

本文介绍了Java枚举的概述和使用场景,如定义有限个数的类对象,如星期和性别。通过一个Weekday枚举类的例子展示了如何声明枚举、设置属性和方法,并在实际代码中使用枚举进行switch语句操作。此外,还提供了测试代码以展示枚举在程序中的应用。
摘要由CSDN通过智能技术生成

Java 枚举

1. 枚举概述

​ **枚举是一个被命名的常数的集合,用于声明一组带标识符的常数。**枚举在日常生活中很常见,例如一个人的性别只能是“男” 或者“女”,一周的星期只能是7天中的一个等。

​ 类似这种当一个变量有几种固定可能的取值时,就可以将它定义为枚举类型。在 JDK 1.5之前没有枚举类型,那时候一般用接口常量来替代。而使用 Java枚举类型 enum 可以更贴近地表示这种常量。

枚举类的使用场景:

​ 类的对象是有限个,确定的。

例如:

​ 星期:Monday(星期一)······ Sunday(星期天)

​ 性别:Man(男)······· Woman(女)

​ 季节:Spring(春)······· Winter(冬)

​ ·········

​ 当需要一组常量时,可以使用枚举。

2. 声明枚举

​ 声明枚举时必须使用 enum 关键字,然后定义枚举的名称、可访问性、基础类型和成员等。

​ 任意两个枚举成员不能具有相同的名称,且它的常数值必须在该枚举的基础类型的范围之内,多个枚举成员之间使用逗号分隔。

一个跟星期有关的枚举示例:

public enum Weekday {
	SUN(0,"星期天"),
	MON(1,"星期一"),
	TUS(2,"星期二"),
	WED(3,"星期三"),
	THU(4,"星期四"),
	FRI(5,"星期五"),
	SAT(6,"星期六");

	private int weekNum;
	private String weekName;

	private Weekday(int weekNum,String weekName){
		this.setWeekNum(weekNum);
		this.setWeekName(weekName);
	}


	public String getWeekName() {
		return weekName;
	}

	public void setWeekName(String weekName) {
		this.weekName = weekName;
	}

	public int getWeekNum() {
		return weekNum;
	}

	public void setWeekNum(int weekNum) {
		this.weekNum = weekNum;
	}

}

测试:

public class Test {
	
	public static void main(String[] args) {
		Weekday weekday = Weekday.MON;
		System.out.println(weekday);
		//System.out.println(weekday.toString());
		Weekday[] values = Weekday.values();
		for(Weekday w : values){
			System.out.println(w);
		}
		test(Weekday.MON);
		
	}
	
	// 在switch语句中使用枚举
	public static void test(Weekday w){
		switch (w) {
		case  SUN:
			  System.out.println(w.getWeekName());
			break;
		case  MON:
			 System.out.println(w.getWeekName());
			break;
		case  THU:
			 System.out.println(w.getWeekName());
			break;
		case  WED:
			 System.out.println(w.getWeekName());
			break;
		case  TUS:
			 System.out.println(w.getWeekName());
			break;
		case  FRI:
			 System.out.println(w.getWeekName());
			break;
		case  SAT:
			 System.out.println(w.getWeekName());
			break;
		}
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白居不易.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值