class TestThread extends Thread {    private String whoami;
    private long delay;    public TestThread(String s, long d) {
        whoami = s;
        delay = d;
    }    @Override
    public void run() {
        try {
            sleep(delay);
        } catch (InterruptedException e) {
        }         System.out.println("Hello World!" + whoami + "" + delay);
    }
}
public class testthread {    public static void main(String args[]) {
        TestThread t1, t2, t3;         t1 = new TestThread("Thread1", 1000);
        t2 = new TestThread("Thread2", 2000);
        t3 = new TestThread("Thread3", 3000);        t1.start();
        t2.start();
        t3.start();
    }
} //有错,请问怎么改??

解决方案 »

  1.   

    public TestThread(String s, long d) { 
            whoami = s; 
            delay = d; 
        } 
    添加一句:
    super(whoami);
    放在whoami=s;之前
      

  2.   


    TestThread没有构造前,不能调用whoami的呀。。
      

  3.   

    class TestThread extends Thread {    private String whoami;
        private long delay;    public TestThread(String s, long d) {
            whoami = s;
            delay = d;
        }    @Override
        public void run() {
            try {
                sleep(delay);
            } catch (InterruptedException e) {
            }        System.out.println("Hello World!" + whoami + "" + delay);
        }
    }public class Test {    public static void main(String args[]) {
            TestThread t1, t2, t3;        t1 = new TestThread("Thread1", 1000);
            t2 = new TestThread("Thread2", 2000);
            t3 = new TestThread("Thread3", 3000);        t1.start();
            t2.start();
            t3.start();
        }

      

  4.   

    Exception in thread "main" java.lang.NoClassDefFoundError: hello/TestThread (wrong name: hello/testthread)
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
            at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
            at hello.testthread.main(testthread.java:36)
    Java Result: 1我编译也没有问题,在NB下面测试的。
      

  5.   


    搞错了。。
    是super(s);
      

  6.   


    我开始也觉得是没有构造的超类的问题,加上去了,还是错。Exception in thread "main" java.lang.NoClassDefFoundError: hello/TestThread (wrong name: hello/testthread)
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
            at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
            at hello.testthread.main(testthread.java:36)
    Java Result: 1
      

  7.   

    hello/TestThread (wrong name: hello/testthread) 
    你的文件名是testthread.java吗、确定了再说。
      

  8.   

    试试,把main函数所在的类的名字换一个
    类文件名也重新编译一下!!!
      

  9.   

    文件名肯定没有错。我换了一个TestThreads类名就ok了。可是是为什么呢?
      

  10.   

    试试,把main函数所在的类的名字换一个
    类文件名也重新编译一下!!!
      

  11.   

    哈哈,修改一下文件名。在windows系统下,文件的大写小是不区分的。类TestThread已经编写了一个文件TestThread.class在一个文件夹下,所以,testthread.class不能存在,故找不到类...修改一下文件名就好了!
      

  12.   

    错误提示是类找不到含有main方法的类的名字必须和java文件名相同