------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
枚举类型在张老师的交通灯的项目中发挥了他强大的作用,在银行调度系统中又再次出现,所有我想,如果不用枚举,问题将不可能那么简单就解决了,同时也更加深刻的意识到了枚举在java编程中的重要性,所以必须对枚举有个更深的了解,而不是仅仅停留在以前的枚举是一个常量,当第一个值时等于1的时候,后面的值会自动递增。
Java的枚举的每个元素都是一个对象,如
public enum WeekDay
{
SUN,MON,TUE,WED,THIRD,FRI,SAT
}
中SUN,MON等都是WeekDay的一个对象,既然是对象,WeekDay中的方法SUN都会有,如
- public enum WeekDay
- {
- SUN,MON,TUE,WED,THI,FRI,SAT;
- public WeekDay nextDay()
- {
- switch(this)
- {
- case SUN:return MON;
- case MON:return TUE;
- case TUE:return WED;
- case WED:return THI;
- case THI:return FRI;
- case FRI:return SAT;
- case SAT:return SUN;
- }
- return null;
- }
- }
定义了nextday的方法,运行下面语句
- WeekDay a = WeekDay.FRI;
- System.out.println(a.nextDay());
枚举元素既然是枚举类的对象,那么如果在WeekDay 中定义有参的构造函数,传入String类型的参数,那么有SUN(“ID”)也就不奇怪了,这里也不演示了。但是有一点要主要,枚举类的构造方法要定义成私有的,那样,就说明该类不能在外部实例化对象,也就是你不能在WeekDay外在弄个枚举元素SUN1,这样是不行的。其实但我们在WeekDay中定义一个SUN时,其实就是相当于WeekDay SUN= new WeekDay(),这种只允许在其内部实例话对象的方法很容易让人想到单例,这样一想,如果枚举类型中只有一个枚举元素时,那就是单例。Java的枚举类型其实就是经过特殊处理的类。虽然如此,枚举的重要性不可低估,在后面的交通灯问题上,张老师就是用的枚举类型。
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------