代码如下:
三个类属同一包。
public class MultiThread1 implements Runnable{
int sum1 = 0;

public void run(){
for(int num = 0;num<=5000;num++){
sum1 += num;
}
System.out.println(sum1);
}

    public int getsum(){
     return(sum1);
    }
}*********************************
public class MultiThread2 implements Runnable {
int sum2 = 0;
public void run(){
for(int num = 5001;num<=10000;num++){
sum2 += num;
}
System.out.println(sum2);
}

public int getsum(){
return(sum2);
}}************************************
public class multThreadRun { public static void main(String[] args) {
int sum = 0;
int sum1 = 0;
                  int sum2 = 0;
Thread one = new Thread(new MultiThread1());
Thread second = new Thread(new MultiThread2());

one.run();
second.run();

try{
one.join();
second.join();
}catch(InterruptedException ie){
System.out.println(ie.getMessage());
}

    sum1 = one.getsum();
    sum2 = second.getsum();
    System.out.println("sum is "+(sum1+sum2));
}
}

解决方案 »

  1.   

    各位大侠们   帮帮看看???
    在主类里的  sum1 = one.getsum();
                sum2 = one.getsum();   出现问题  ???/
    解决不了
        希望前辈们帮我看看    不要嫌分少  我没分用了所以请大家见晾!!!!
      

  2.   

    你这里是向上转型为 Thread,他没有getsum()方法的
      

  3.   

    我也没看明白,为什么不可以调用getsum方法呢
    按照楼主说的,那one.run();second.run();应该是没有问题了
    既然run方法可以调用,那为什么getsum不可以呢
      

  4.   

    你看看是不是sum1和sum2的问题~
      

  5.   

    run方法虽然是public,但一般不是直接调用的,因为它是线程函数,相当于回调函数,是由操作系统来调用的,创建线程后,应使用start()方法来启动线程。
      

  6.   

    one.join();
    second.join();
    线程都死了,还能getsum吗
      

  7.   

    getsum()  改为 static 试试
      

  8.   

    Thread one = new Thread(new MultiThread1());
    Thread second = new Thread(new MultiThread2());
    one,second现在是Thread类型的对象,而Thread类是没有getsum方法的,但有run方法,因此一个可以另一个不可以。