初入java多线程,小白奋兴当自强,求大佬帮我看看问题

public class xiancheng {

public static void main(String[] args){
    tortoise tod  = new tortoise();
    Thread spraktortoise = new Thread(tod);
    rabbit ra = new rabbit();
    Thread sprakrabbit = new Thread(ra);
    spraktortoise.start();
    sprakrabbit.start();
}

class tortoise implements Runnable{
    public void run(){
        for(int i=0;i<=300;i=i+30)
            System.out.println("乌龟已到:"+i);
    }

}
class rabbit implements Runnable{图片说明

    public void run(){
        for(int i=0;i<=300;i=i+100)
            System.out.println("兔子已到:"+i);
    }

}
}


把tortoise这个类放在xiancheng类外面。内部类在静态函数里不能直接初始化。

你的兔子和乌龟类都是非静态内部类,都是从属于外部类对象的,所以再初始化内部类的时候,需要先初始化一个外部类对象:xiancheng xc= new xiancheng();然后用这个外部类对象调用方法初始化内部类对象:xc.tortoise tor =new xc.tortoise();然后就可以用tor这个对象来嗲用方法执行了。如果这个内部类是静态类,就要简单一些,因为静态类内部是属于方类本身的,直接使用外部类调用内部类的构造方法即可:xiancheng.tortoise tor = new xiancheng.tortoise;(前提是tortoise类是被static修饰的)