为什么java中的直接用Thread类实例化对象的时候必须要这样子?

来源:百度知道 编辑:UC知道 时间:2024/05/23 03:19:42
假设,有这么一个类:
class A implements Runnable{
Thread newThread;
A()
{
newThread=new Thread(this);
}

}
只有这样,才是对的,如果是这样的话,就编译就不会让通过:
class A implements Runnable{

A()
{
Thread newThread=new Thread(this);
}

}

为什么这样,但是为什么别的类,却基本上,都可以把对象的声明和定义放在一步去完成,比如:Timer time=new Timer(1000,this);
就是因为,Thread类比较特殊吧!

class A implements Runnable{
Thread newThread;
A()
{
newThread=new Thread(this);
}

此例里 newThread 是instance 变量

第二个例子 如果不事先声明 newThread

在 构造器里 声明 变量 没有 意义

是local viariable 不能用于构造器之外

不可能有编译错误的,两种写法在语法上都没有错。
至于楼上的解释,很显然是没有根据的猜测。
当然,有点是需要注意的,那就是既然是两个类都需要实现run()方法,哪怕是空实现,估计编译错误应该出现在这里

看不懂 第一个就不对把! 应该实现Runnable中的 run()方法才行啊!!!