public class Test implements Runnable{
public static void main(String[] args){
}
public Test(){
Test task = new Test();
new Thread(task).start();
}
public void run(){
System.out.println("test");
}
}能过编译,但是运行不了,如果把构造方法里面的语句放到main方法里就可以执行,请问这是为什么
public static void main(String[] args){
}
public Test(){
Test task = new Test();
new Thread(task).start();
}
public void run(){
System.out.println("test");
}
}能过编译,但是运行不了,如果把构造方法里面的语句放到main方法里就可以执行,请问这是为什么
解决方案 »
- 终于明白java是何等的垃圾
- 请问,java的系统托盘图标如何实现提示框?
- 感叹到底是单片机与c++有前途,还是JAVA/.net有前途,中国缺少的是智能仪器开发人员还是程序员?
- [初级问题] 关于具体的JAVA学习方向。
- 为什么Java这么火,除了跨平台以外,主要优势在哪些地方(我是初学者)?
- 关于JAVA和MATLAB之间程序结合的问题?
- 求解~
- 高分,高分!!(求救呀!!!)
- 谁知道 Rational 是什么工具,做什么用的?
- 我是一个初学者,有些问题请教...很菜...
- system.arraycopy(a,0,b,0,9)中a,b能否是vector类的
- (代码很短)菜鸟问个字符串数组问题
public static void main(String[] args){
new Test();
}public Test(){
Test task = new Test();
new Thread(task).start();
}public void run(){
System.out.println("test");
}
}打少了一句,main方法里面的
public Test(){
Thread task = new Thread(this);//既然是实现Runnable接口,那么怎么能实例类名呢?那必须是实例一个线程啊。
task.start();
}
public void run(){
System.out.println("test");
}
public static void main(String[] args){
new Test();
}
}
public class TestTop { public static void main(String[] args) {
// TODO Auto-generated method stub
Tks t = new Tks();//创建Tks类对象.
Thread td = new Thread(t);//创建线程对象
td.start();//启动线程
}
}class Tks implements Runnable { //外部类,实现Runnable接口
public void run (){ //重写run方法.
while (true){
System.out.println("Tks");
}
}
}
... ...堆栈溢出了,当然跑不起来:
当你创建一个Test对象实例时,结果在它的构造方法里,你又创建一个它自己,当创建一个它自己的对象实例时,又会执行Test的构造方法,这样就没有头儿了,什么时候是个结束能编译通过,说明你的程序没有语法上的错误,而你写的这个程序是逻辑上的错误