枚举


枚举(Enum

随着时间的越来越少,现在学习有点凌乱了。。。今天看了张老师的基础加强,第二遍了思路比较清晰,下面是关于枚举的一些我的学习笔记和自己的理解。

 

枚举存在的原因:

枚举就是让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错,这样,枚举就可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标,枚举的出现就解决了这类问题。

 

关于枚举:

枚举就是一个特殊的类,用普通的类也可以模拟枚举的功能。

 

枚举的成员就是这类的实体对象。枚举袁术必须位于枚举体中的最开始部分,枚举元素列表后面要用“;”结束,以便于与其他成员进行分开。

 

构造方法只能私有化,不能让外部调用它的创建对象,也可以定义带有参数列表的构造函数,只要用到枚举类,成员变量就会被初始化,构造方法就会执行。

 

如何用带有参数的构造方法对枚举类的实例对象进行初始化呢?

在枚举元素后面制定对应的参数就会用带有相应参数的构造函数进行初始化。

提示:枚举元素后面加不加()都是用空参数构造函数进行初始化。

 

枚举的方法摘要:

方法摘要

 boolean

equals(Object other)
          当指定对象等于此枚举常量时,返回 true。

 Class<E>

getDeclaringClass()
          返回与此枚举常量的枚举类型相对应的 Class 对象。

 String

name()
          返回此枚举常量的名称,在其枚举声明中对其进行声明。

 int

ordinal()
          返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。

 String

toString()
          返回枚举常量的名称,它包含在声明中。

static

<T extends Enum<T>>
 T

 

valueOf(Class<T> enumType, String name)
          返回带指定名称的指定枚举类型的枚举常量。

 

枚举的基本应用:

定义一个星期几的枚举,并代用nextDay方法。

 

public Enum WeekDay 
{
	SUNDAY,MONDAY;
	public WeekDay nextDay()
	{
		if(this == SUNDAY)
			return MONDAY;
		else
			return SUNDAY;
	}
}

枚举的高级应用:

定义一个交通灯的枚举,带有参数的构造函数和抽闲的nextLamp方法。

 

public Enum TrafficLamp 
{
	RED(45)//相当于内部类
	{
		//复写父类的抽象方法
		public TrafficLamp nextLamp()
		{
			return GREEN;
		}
	},
	GREEN(60)
	{
		public TrafficLamp nextLamp()
		{
			return YELLOW;
		}
	},
	YELLOW(5)
	{
		public TrafficLamp nextLamp()
		{
			return RED;
		}
	};
	
	private int waitTime;
	private TrafficLamp(int waitTime)//带有参数的构造函数
	{
		this.waitTime = waitTimewaitTime;
	}

	public abstract TrafficLamp nextLamp();//抽象方法
}


 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值