黑马程序员技术交流社区
标题:
关于继承Thread类的问题
[打印本页]
作者:
蔡少凯
时间:
2013-1-7 20:41
标题:
关于继承Thread类的问题
public class Test21 {
public static void main(String[] args) {
MyThread mt = new MyThread();
mt.start();
}
}
class MyThread extends Thread{
public void run(){
try {
//this.sleep(1000); 正确
Thread.sleep(1000);
//mt.sleep(1000); 错误 报错
System.out.println();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
MyThread不是继承Thread类吗 为什么不能使用其对象调用sleep方法
而是以this则可以 this不是只想该实例化对象吗?
作者:
夏振博
时间:
2013-1-7 21:07
本帖最后由 arno942 于 2013-1-7 21:27 编辑
如果在加一个线程的话 它的就是不mt了,会变成mt1,mt2 等等 你想想 MyThread 还能用吗?
this 能用是因为谁调用它就是谁。
看代码
public class Test21 {
public static void main(String[] args) {
MyThread mt = new MyThread();
MyThread mt1 = new MyThread();
mt.start();
mt1.start();
}
}
class MyThread extends Thread{
public void run(){
try {
//this.sleep(1000); 正确
Thread.sleep(1000);
//mt.sleep(1000); 错误 报错
System.out.println();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
复制代码
作者:
熊永标
时间:
2013-1-7 21:12
package demo1;
class Test21 {
public static void main(String[] args) {
MyThread mt = new MyThread();
try {
mt.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mt.start();
}
}
class MyThread extends Thread {
public void run() {
try {
// this.sleep(1000); 正确
Thread.sleep(1000);
// mt.sleep(1000); 错误 报错
System.out.println();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
复制代码
是可以的,你看我的代码,你这个报错是找不到对象mt,因为你的mt是main方法内,属于局部变量,不可以被外部所访问的。还有一点,sleep是Thread的静态方法,不推荐使用对象来访问,而是应该通过类名来访问。
作者:
何竹冬
时间:
2013-1-7 21:46
你好
sleep是Thread类的静态方法,表示暂停当前线程一段时间后自动恢复。
Thread.sleep(1000);不用创建Thread实例。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2