黑马程序员技术交流社区
标题:
交通灯疑惑
[打印本页]
作者:
Alex shaw
时间:
2013-3-21 19:29
标题:
交通灯疑惑
public Road(String name)
{
this.name = name;
//创建一个使用单个 worker 线程的 Executor
ExecutorService pool = Executors.newSingleThreadExecutor();
pool.execute(new Runnable()
{
@Override
public void run() {
for(int i = 0 ; i < 100 ; i++)
{
try {
Thread.sleep(new Random().nextInt(1000));
list.add(Road.this.name+":"+i);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
}
复制代码
这是road类,张孝祥老师视频中讲到的,为什么不能再构造方法中直接Thread.sleep
而是非要用这种方法,另外 内部类访问外部类的同名变量是不是就是外部类.this.属性名
作者:
谢洋
时间:
2013-3-21 20:06
这是road类,张孝祥老师视频中讲到的,为什么不能再构造方法中直接Thread.sleep
这是项项目的要求:1到10秒路上随机产生一辆车。
作者:
陈志强
时间:
2013-3-22 15:34
public Road(String name)
{
this.name = name;
//创建一个使用单个 worker 线程的 Executor
ExecutorService pool = Executors.newSingleThreadExecutor();
pool.execute(new Runnable()
{
@Override
public void run() {
for(int i = 0 ; i < 100 ; i++)
{
try {
Thread.sleep(new Random().nextInt(1000));//Random方法指的是在某个范围之内随机产生一个数,如果在构造方法中直接 Thread.sleep的话就与项目要求不符合了。
list.add(Road.this.name+":"+i);//这里是一个匿名内部类,而内部类想要访问外部类中的成员格式就是:外部类名.this.。这是张孝祥老师特意帮我们回顾知识点。
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
}
作者:
黑马-周科
时间:
2013-3-22 17:28
如果你直接用Thread.sleep(inteage);只能固定一个时间点,与张老师的要求不符合,
要求:汽车是在(1~10秒内)随机出现,
Thread.sleep(new Random().nextInt(1000));
内部类访问外部类的同名变量就是 外部类.this.属性名
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2