package com.itcast.traffic; /** * 每个Lamp元素代表一个方向上的灯,总共有12个方向,所以总共有12个Lamp元素 * @author Administrator * */ public enum Lamp { //每个枚举元素各表示一个方向的控制灯 S2N("N2S","S2W",false),S2W("N2E","S2W",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),N2W(null,null,true),W2S(null,null,true),E2N(null,null,true); private Lamp(String oppsite,String next,boolean lighted){ this.oppsite = oppsite; this.next = next; this.lighted = lighted; } //与当前灯同时为绿的对应方向 private String oppsite; //当前灯变红时下一个变绿的灯 private String next; //当前灯是否为绿灯 private boolean lighted; public boolean isLighted(){ return lighted; } //某个灯变绿时,它对应方向上的灯也要变绿 public void light(){ this.lighted = true; if(this.oppsite != null){ Lamp.valueOf(oppsite).light(); } System.out.println(name() + "Lamp is green,下面总共应该有6个方向能看到汽车通过"); } //某个方向上的灯变红时,对应方向的灯也要变红,并且下一个方向的灯要变绿 public Lamp blackOut(){ this.lighted = false; if(this.oppsite != null){ Lamp.valueOf(oppsite).blackOut(); } Lamp nextLamp = null; if(this.next != null){ nextLamp = Lamp.valueOf(next); System.out.println("绿灯从" + name() + "------------->切换为" + next); nextLamp.light(); } return nextLamp; } }
最近下载更多
ming_123_9715 LV23
2021年10月22日
与你同行2019 LV11
2021年2月26日
2196316269 LV10
2021年2月25日
superadmin001 LV1
2021年2月12日
qiuqiu555 LV1
2020年11月15日
ListenMuDi LV2
2020年6月14日
小糊涂 LV1
2020年6月3日
茅屋为秋风所破歌 LV1
2020年4月5日
20181107 LV4
2019年12月14日
2818821836 LV11
2019年4月17日
最近浏览更多
uid0901 LV2
4月2日
y1214435276 LV9
2023年7月4日
GT2002220 LV2
2023年6月9日
微信网友_6508798513811456 LV5
2023年6月7日
泓鼎168 LV20
2023年3月31日
15342201772 LV9
2022年12月10日
未交定金
2022年10月26日
暂无贡献等级
王俊杰1
2022年9月22日
暂无贡献等级
zhaoyangwfd LV17
2022年6月24日
Code_Pianist LV2
2022年6月17日