A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

昨天学习了张老师的交通灯管理系统,不得不说张老师是我们想入门学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值的,为什么还要判断???
当我除去了判断,运行又出错了,为什么啊??


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

5 个回复

倒序浏览
本帖最后由 itheima_llt 于 2015-4-21 20:26 编辑

这个还没学,抱歉,不知道
回复 使用道具 举报
itheima_llt 发表于 2015-4-21 15:24
能发这么好的帖子,太谢谢了

敢不敢不水贴

点评

。。。。。。  发表于 2015-4-22 20:10
看帖回帖是种美德,最讨厌看帖不回了!我回帖对我又没什么好处。  发表于 2015-4-21 20:31
我这是暖贴,我自己认真发了50篇学习笔记,基本上都是零回复。。。哎伤心啊,你看看你这帖子,还不是0回复。视频后面的部分根本没人交流。  发表于 2015-4-21 20:30
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马