java枚举类型相关代码

笔记本上没记过,就在这里写一写吧

1枚举类型定义

enum WeekDay
{
	SUNDAY,MONDAY,TUESDAY,WEDNESDAY,
	THURSDAY,FRIDAY,SATURDAY;
}
public class EnumDemo 
{
	public static void main(String[] args)
	{
		WeekDay rest = WeekDay.SUNDAY;
		System.out.println(rest);
	}
}

2枚举类型方法

方法摘要
protected  Objectclone() 
          抛出 CloneNotSupportedException。
 intcompareTo(E o) 
          比较此枚举与指定对象的顺序。
 booleanequals(Object other) 
          当指定对象等于此枚举常量时,返回 true。
 Class<E>getDeclaringClass() 
          返回与此枚举常量的枚举类型相对应的 Class 对象。
 inthashCode() 
          返回枚举常量的哈希码。
 Stringname() 
          返回此枚举常量的名称,在其枚举声明中对其进行声明。
 intordinal() 
          返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。
 StringtoString() 
          返回枚举常量的名称,它包含在声明中。
static
<T extends Enum<T>> 
T
valueOf(Class<T> enumType, String name) 
          返回带指定名称的指定枚举类型的枚举常量。
 

下面代码可以输出每个枚举长两名和它们的顺序号:

for(WeekDay d : WeekDay.values())
{
        System.out.println(d + ", ordinal" +d.ordinal());
}

枚举类型有个特别实用的特性,它可以在switch语句中使用:

public class EnumTest 
{
	WeekDay day;
	public EnumTest(WeekDay day)
	{
		this.day = day;
	}
	public void describe()
	{
		switch(day)
		{
		case MONDAY:
		    System.out.println("Mondays are bad.");
	     	break;
		case FRIDAY:
			System.out.println("Fridays are better.");
			break;
		case SATURDAY:
		case SUNDAY:
			System.out.println("Weekends are best.");
			break;
		default:
			System.out.println("Midweek days are so-so.");
			break;
		}
	}
	public static void main(String[] args) 
	{
		// TODO Auto-generated method stub
		EnumTest firstDay = new EnumTest(WeekDay.MONDAY);
		firstDay.describe();
		EnumTest thirdDay = new EnumTest(WeekDay.WEDNESDAY);
		thirdDay.describe();
		EnumTest seventhDay = new EnumTest(WeekDay.SUNDAY);
		seventhDay.describe();
	}
}

3枚举类型的构造方法

在枚举类型的声明中,除了枚举常量外,还可以声明构造方法,成员变量和其他方法

public class MealDemo 
{
	public enum Meal
	{    //内部枚举
		BREAKFAST(7,30),LUNCH(12,15),DINNER(19,45);
		private int hh;
		private int mm;
		Meal(int hh,int mm)   //枚举的构造方法
		{
			assert(hh >= 0 && hh <= 23):"小时范围非法.";
			assert(mm >= 0 && mm <= 59):"分钟范围非法";
			this.hh = hh;
			this.mm = mm;
		}
		public int getHour()
		{return hh;}
		public int getMins()
		{return mm;}
	}
	public static void main(String[] args)
	{
		Meal bf = Meal.BREAKFAST;
		System.out.println("早饭时间:"  + bf.getHour() +":"+ bf.getMins());
	}
}


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值