黑马程序员技术交流社区

标题: 关于7k交通灯管理系统的一个疑问?? [打印本页]

作者: major2015    时间: 2015-4-21 12:20
标题: 关于7k交通灯管理系统的一个疑问??
昨天学习了张老师的交通灯管理系统,不得不说张老师是我们想入门学java的好老师,讲解项目思路清晰,面向对象的举例也是令人记忆深刻。

在源代码中,我觉得有一个方法是最重要的,那就是blackOut(),但这个代码中有一些我不清楚的

源码如下:
  1.         /**
  2.          * 某个灯变红时,对应方向的灯也要变红,并且下一个方向的灯要变绿
  3.          * @return 下一个要变绿的灯
  4.          */       
  5.         public Lamp blackOut(){
  6.                 this.lighted = false;
  7.                 if(opposite != null){
  8.                         Lamp.valueOf(opposite).blackOut();
  9.                 }               
  10.                
  11.                 Lamp nextLamp= null;
  12.                 if(next != null){
  13.                         nextLamp = Lamp.valueOf(next);
  14.                         System.out.println("绿灯从" + name() + "-------->切换为" + next);                       
  15.                         nextLamp.light();
  16.                 }
  17.                 return nextLamp;
  18.         }
复制代码

不清楚的就是为什么要判断if(opposite != null)和if(next != null),因为12条线路在代码中只要掌控S2N,S2W,E2W,E2S四条线路就行了,而这四条线路对应的枚举类都包含了opposite和next的赋值,也就是一定不会是null值的,为什么还要判断???
当我除去了判断,运行又出错了,为什么啊??


有没有人研究过代码啊,求知道,。。。谢了、、、

作者: itheima_llt    时间: 2015-4-21 15:24
本帖最后由 itheima_llt 于 2015-4-21 20:26 编辑

这个还没学,抱歉,不知道
作者: major2015    时间: 2015-4-21 20:23
itheima_llt 发表于 2015-4-21 15:24
能发这么好的帖子,太谢谢了

敢不敢不水贴




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2