有人可以解释一下“this”的含义“th =新主题(这个,名称);”以下程序是什么意思?当前使用的Thread构造函数是Thread(Runnable threadOb,String name)。为什么我必须在上面的表达中使用“this”这个词?例如,如果我写“th = new Thread(newOb,name);”,则eclipse提及ob无法解析为变量。在这种情况下,我是否总是必须使用“this”,如果是这样,为什么? 非常感谢提前。
class MyThread implements Runnable{
int count;
Thread th;
MyThread(String name){
th = new Thread( newOb, name);
count =0;
th.start();
}
public void run(){
System.out.println(th.getName() + " starting ");
try{
do{
Thread.sleep(500);
System.out.println(" in " + th.getName() + " count is " + count);
count++;
}while(count<5);
}
catch(InterruptedException e){
System.out.println(e);
}
System.out.println(th.getName() + " terminating");
}
}
public class UseThreads {
public static void main(String[] args) {
System.out.println("main thread");
MyThread mt = new MyThread("thread1");
do{
System.out.println(".");
try{
Thread.sleep(100);
}
catch(InterruptedException e){
System.out.println(e);
}
}while(mt.count!=5);
System.out.println("main thread terminating ");
}
}
答案 0 :(得分:0)
this
代表 curent 上下文中的当前对象。 this
可以根据上下文进行更改。例如,在run()
方法中,如果您创建并实例化匿名内部类,那么在该类中,this
将与this
方法中的run()
不同。
为什么在需要Runnable
对象时使用此功能?
你有:
class MyThread implements Runnable{
因此,在MyThread(String name)
中,这将是MyThread
的当前实例。
由于MyThread
实现Runnable
,所有MyThread
个实例也都是Runnable
,因此,可以使用此实例代替Runnable
的实例
示例:
SomeObject obj = new SomeObject();
obj.doSomething();
private void doSomething(){
// here this is implicitly set to obj i.e, the calling object
}