黑马程序员技术交流社区

标题: 线程相关问题 [打印本页]

作者: 张开开    时间: 2012-2-27 22:53
标题: 线程相关问题
class Test extends Thread
{
        private String name;
        Test(String name)
        {
                super(name);
                //this.name=name;
        }
        public void run()
        {
        System.out.println(this.getName()+"--run----");
        }
}

class ThreadTest
{
        public static void main(String[] args)
        {
                Test t1=new Test("first");
                Test t2=new Test("two");
                t1.start();
                t2.start();
        }
}

请问,为什么用super(name);可以打印出所设置的名字,而用this.name=name;就打印不出来呢?求解!!
作者: 刘基军    时间: 2012-2-27 23:40
System.out.println(this.getName()+"--run----");
这个getName()方法是继承于Thread类的,用于返回该线程的名称。
你只能通过调用Thread类的构造函数super(name)或setName(name)方法进行赋值,若是你没有进行赋值,默认是"Thread-" + nextThreadNum()。
作者: 李晓俊老师    时间: 2012-2-27 23:43
如果你按照自己的方法打印出名次可以写一个getName()方法,
这样写
public String getName()
{
     return this.name;
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2