读书人

黑马软件工程师-交通灯系统注意点归纳

发布时间: 2012-08-21 13:00:21 作者: rapoo

黑马程序员----交通灯系统注意点归纳

---------------------- android培训、java培训、期待与您交流! ----------------------
以下为Lamp类代码:

package com.itcast.interview.traffic;public enum Lamp {S2N("N2S","S2W",false),S2W("N2E","E2W",false),E2W("W2E","E2S",false),E2S("W2N","S2N",false),N2S(null,null,false),N2E(null,null,false),W2E(null,null,false),W2N(null,null,false),S2E(null,null,true),E2N(null,null,true),N2W(null,null,true),W2S(null,null,true);private boolean lighted;private Lamp oppositeLamp;private Lamp nextLamp;private Lamp(String oppositeLamp , String nextLamp, boolean lighted) {//没有直接传入Lamp类型而是改用String是因为在enum中不能使用未定义的枚举this.oppositeLamp = Lamp.valueOf(oppositeLamp);//用枚举的valueof方法将String转换为enum类型this.nextLamp = Lamp.valueOf(nextLamp);this.lighted = lighted;}public boolean isLighted(){return this.lighted;}public void light(){this.lighted = true;if(oppositeLamp != null){oppositeLamp.light();}}public Lamp black(){this.lighted = false;if(this.oppositeLamp != null){oppositeLamp.lighted = false;}if(this.nextLamp != null){  this.nextLamp.light();}return nextLamp;}    }

?枚举注意点:
????????1:所有成员属性必须设置为私有
????????2:在定义枚举时,枚举后面的形参没有使用枚举类型而改用相应的String类型进行转换!!!这是因为在加载这个枚举类时加载第一个枚举类型S2N,而它使用到了将要被加载的S2W,这时
????????? jvm不能识别S2W(因为暂时枚举中不存在S2W)将会报错!
????????3:枚举可以有无参构造和有参构造,并可以根据需要添加方法,十分方便。
????????4:枚举中只放一个type可作为单列模式运用。

---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima

?

读书人网 >编程

热点推荐