当前位置: 技术问答>java相关
问个没有水平的问题?(回答了马上结贴给分)
来源: 互联网 发布时间:2017-04-10
本文导语: class A implements Runnable { Thread t; public static void main(String[] args) { A a=new A(); a.go(); } void go() { t=new Thread(this);////这儿的this 怎么不能换成a,this又是指向的什么呢?...
class A implements Runnable
{
Thread t;
public static void main(String[] args)
{
A a=new A();
a.go();
}
void go()
{
t=new Thread(this);////这儿的this 怎么不能换成a,this又是指向的什么呢?
t.start();
}
public void run()
{
try
{
doThis();
}catch(InterruptedException e){
System.out.println("caugth");}
}
void doThis() throws InterruptedException
{
t.sleep(2000);
}
}
{
Thread t;
public static void main(String[] args)
{
A a=new A();
a.go();
}
void go()
{
t=new Thread(this);////这儿的this 怎么不能换成a,this又是指向的什么呢?
t.start();
}
public void run()
{
try
{
doThis();
}catch(InterruptedException e){
System.out.println("caugth");}
}
void doThis() throws InterruptedException
{
t.sleep(2000);
}
}
|
你这里的 a 是 main 里面的局部变量,所以
当然不可以。
当然不可以。
|
Thread的构造函数需要一个Runnable参数,你现在把自己A(this)传到里边去了。
|
他们讲的很有道理,我就不多说了,结贴吧
|
对 都有道理
|
a是全局变量就可以
|
this是指的本身,而a指的则是另外一个对象,以上程序,a和this都是class A的实例,对于方法而言,a是另外一个实例,而this则是它本身的对象。