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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

写过这个项目的人代码都有。下面这段是关灯的一个方法

public Lamp blackOut() {
                lighted = false;
                System.out.println(this+"  的红灯亮了");
                if (oppositeLighted != null) {
                        Lamp.valueOf(oppositeLighted).blackOut();
                }
                Lamp nextLamp = null;
                if(nextLight!=null){
                        nextLamp = Lamp.valueOf(nextLight);
                        nextLamp.light();
                }
               
                return nextLamp;
               
        }


public class LampController {
       
        private Lamp controlLamp= null;
       
        public LampController(){
                controlLamp = Lamp.S2N;
                controlLamp.light();
                ScheduledExecutorService timer = Executors.newSingleThreadScheduledExecutor();
               
                timer.scheduleAtFixedRate(
                                new Runnable(){

                                        @Override
                                        public void run() {
                                                // TODO Auto-generated method stub
                                                controlLamp = controlLamp.blackOut();                                        }
                                       
                                },
                                10,
                                10,
                                TimeUnit.SECONDS);
               
        }

}

想了很久都不太明白我用红色标记的那个地方,为什么要用个对象来接收。能把逻辑详细的讲解一下吗?

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
首先、明确一点:需要让交通灯循环的亮、灭
其次、当你关掉一个灯的时候需要使得下一个灯亮,也就是nextLamp.light();
如果你没有对象来接受的话,那么你处理了一个灯的逻辑之后,怎么去寻找下一个灯?
于是,老师就在处理完一个灯后,返回下一个灯,那么从而可以实现循环了。

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
这个跟集合的remove方法一样,remove是移除它就是为了用它,而这里关掉它就是为了让下一个灯打开~~这两个方法很类似~~~
回复 使用道具 举报
黄奕豪 发表于 2012-6-15 16:44
这个跟集合的remove方法一样,remove是移除它就是为了用它,而这里关掉它就是为了让下一个灯打开~~这两个方 ...

不愧是高手,你这一说,我就有点明白了。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马