public void Do()
    {
        int max_index=0;        long flag;
        int j=0;
        for(int i=0;i<stu.length;i++)
        {
            max_index=i;            for(j=i+1;j<stu.length;j++)
            {
                if(stu[j].getNum()>stu[max_index].getNum())
                {
                      max_index=j;
                }
            }            flag=stu[max_index].getNum();
            stu[max_index].getNum()=stu[i].getNum();
            stu[i].getNum()=flag;
            
            
        }
    }
为什么stu[max_index].getNum()是一个对象呢?
要怎么改呢?

解决方案 »

  1.   

    楼主的代码都没有发全,这怎么看的出来。
    stu应该是一个全局变量。
    你把到变量定义的位置就知道了。
      

  2.   

    总是最后一个是不?一重循环就OK了,如下:public void Do(){
      int max_index=0;  long flag;
      int j=0;  for(j=1;j<stu.length;j++)  {
      if(stu[j].getNum()>stu[max_index].getNum())
           max_index=j;
       }  flag=stu[max_index].getNum();
      }
      

  3.   

    你这代码不全,不知道你的stu是个什么对象。。还有你这个getNum()的返回值是什么也不知道。。
    所以把代码补全吧。
      

  4.   

    stu应该是个储存对象引用的数组,stu[max_index]取得的是下标为max_index的对象引用,后面的getNum应该是该对象里面的一个方法,返回一个int类型的值
      

  5.   

    我是想问stu[max_index].getNum()=stu[i].getNum();中的stu[max_index].getNum()为什么是个对象?
     
      

  6.   


    不会吧,从顶楼程序来看,stu[max_index].getNum()得到的是long,简单数据类型的值啊。