public class Test extend Thread(){ String str[]=new String[10]; static { for (int i = 0; i < str.length; i++) { str[i]=i+"-"; } } public void start() { try { for (int i = 0; i < str.length; i++) { sleep(1000); System.out.print(str[i]); } } catch (InterruptedException e) { e.printStackTrace(); } } public static void main(String args[]) { Test t = new Test(); t.run(); } }
时间: 2023-07-16 15:15:09 浏览: 319
这段代码有几个问题:
1. 类名应该是 `Test extends Thread` 而不是 `Test extend Thread()`
2. `start()` 方法应该是重写 `Thread` 类的 `start()` 方法,而不是定义一个新的 `start()` 方法
3. 在 `main` 方法中应该调用 `t.start()` 来启动线程,而不是 `t.run()`,因为后者只是普通的方法调用,不会创建新的线程,而是在当前线程中执行线程代码。
修改后的代码如下:
```
public class Test extends Thread {
String str[]=new String[10];
static {
for (int i = 0; i < str.length; i++) {
str[i]=i+"-";
}
}
@Override
public void run() {
try {
for (int i = 0; i < str.length; i++) {
sleep(1000);
System.out.print(str[i]);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void main(String args[]) {
Test t = new Test();
t.start();
}
}
```
阅读全文