创建线程
1、继承Thread,覆盖run方法
2、传递Runnable对象
run方法只能处理InterruptedExcption异常,不能抛出。
TimerTask
class MyTimerTask extends TimerTask{
@Override
public void run() {
count = (count+1) % 2;
System.out.println("bombing");
new Timer().schedule(new MyTimerTask(), 2000+2000*count);
}
}
new Timer().schedule(new MyTimerTask(),2000);
匿名内部类
在使用匿名内部类时,要记住以下几个原则:
·匿名内部类不能有构造方法。
·匿名内部类不能定义任何静态成员、方法和类。
·匿名内部类不能是public, protected, private, static。
·只能创建匿名内部类的一个实例。
·一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。
·因匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效。
·内部类能访问外部类的静态变量或静态方法。
.匿名内部类的父类没有默认构造函数时,通过new A(参数对象) {} 方式调用非默认构造函数