java 运行程序出问题了,求大神看看

这是我写的龟兔赛跑的程序,运行不合适,求大神看看。。。。packagecom.briup.ch10;publicclasstrTest{publicstaticvoidm... 这是我写的龟兔赛跑的程序,运行不合适,求大神看看。。。。
package com.briup.ch10;
public class trTest{

public static void main(String[] args) {

Rabbit Rb=new Rabbit();
Tortoise Tt=new Tortoise();

try{
Rb.start();
Tt.start();
Rb.join();
Tt.join();

}catch(InterruptedException e){}
System.out.println("1111111111111111");
}

}
class Rabbit extends Thread{

Tortoise tt=new Tortoise();

public void run(){
for(int i=0;i<100;i=i+2){
try{
sleep(100);
}catch(InterruptedException e){
e.printStackTrace();
}
System.out.println("Rabbish is running");

}

while (Tt.isAlive()){
System.out.println("Rabbish win ");
break
}

}

}

class Tortoise extends Thread{

Rabbit rb=new Rabbit();

public void run(){
for(int i=0;i<100;i++){
System.out.println("Tortoise is running");
}

while(Rb.isAlive()){
System.out.println("Tortoise win");
break;
}

}

}
展开
 我来答
截竹为萧
2013-09-01 · TA获得超过155个赞
知道小有建树答主
回答量:162
采纳率:0%
帮助的人:195万
展开全部
肯定错了。你2次new了2个对象,启动线程对象和while循环中的不是一个对象,循环条件根本不会执行,永无止境的跑下去 会出现 堆栈溢出异常  
帮你改下如下:
import java.util.Scanner;
public class A {
 public static void main(String[] args) {
//  Rabbit Rb = new Rabbit();
//  Tortoise Tt = new Tortoise();
  try {
   Tortoise.rb.start();
   Rabbit.tt.start();
   Tortoise.rb.join();
   Rabbit.tt.join();
  } catch (InterruptedException e) {
  }
  System.out.println("1111111111111111");
 }
}
class Rabbit extends Thread {
 static Tortoise tt = new Tortoise();
 public void run(){  
  for(int i=0;i<100;i=i+2){  
  try{   sleep(100);  
  }catch(InterruptedException e){   
   e.printStackTrace();   
   }   System.out.println("Rabbish is running");     
   }    
 while (tt.isAlive()){  
  System.out.println("Rabbish win ");  
  break  ;
  }   
 }}
class Tortoise extends Thread {
static Rabbit rb = new Rabbit();
 public void run() {
  for (int i = 0; i < 100; i++) {
   System.out.println("Tortoise is running");
  }
  while (rb.isAlive()) {
   System.out.println("Tortoise win");
   break;
  }
 }
}
追问
非常感谢你的解答,让我知道了如何在主函数中申明类可以调用其它类,下面的类为啥要用static 修饰,可以给我说说 static 修饰类的相关知识吗?加入不用static,还有其它方式实现的方法吗?求大神指点,
追答
static 修饰符 修饰的类或者变量是常驻内存的,也就是只需要实例化一次,static修饰的类或者变量可以直接用类名字去调用,  不用static ,你想在不同类中使用同一个类引用 就需要把这个类的引用当参数传递给其他类。
那好吧fly
2013-09-13
知道答主
回答量:37
采纳率:0%
帮助的人:11.5万
展开全部
看来已经解决啦
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式