java程序求解释?(10行)

来源:百度知道 编辑:UC知道 时间:2024/06/28 04:23:07
import java.util.*;

public class TimerTest {

public static void main(String[] args){
Timer timer = new Timer();
timer.schedule(new MyTask(), 1000, 2000);//在1秒后执行此任务,每次间隔2秒,如果传递一个Data参数,就可以在某个固定的时间执行这个任务.

}

static class MyTask extends TimerTask{

public void run() {
// TODO Auto-generated method stub
System.out.println("________");
}
}

}

为什么“static class MyTask extends TimerTask”中Mytask类是静态(static)的?

Timer有3个类,你用的是util包中的Timer。
个人感觉,swing中的Timer最好用。
util包中的Timer,需要一个执行器。触发是它自己触发的,执行是由执行器执行的。
你这样写程序,触发器是静态内部类。本来只一个实例的,你现在的程序倒也能实现。不过。。为什么不做为外部类,创建一个实例以调用schedule呢?

这里使用的是静态内部类的例子。使用static内部类,这时只是为了把类MyTask隐藏在类TimerTest内部,并且不需要内部类MyTask引用外围类TimerTest对象。

也可以不是静态的啊!