主要看不懂他们之间怎么联系的或者说逻辑,还有就是这段代码 
public student(String name)
{
       this.name=name;
}
起到什么作用?为什么就写了一个name?code sexy duty为什么不写进去?
public class student
{
  String name="";
  String code="";
  String sexy="";
  String duty="";
  double achievement;
  public student(String name)
  {
    this.name=name;
  }  
  void set(String name,String code,String sexy,String duty)
  {
    this.name=name;
    this.code=code;
    this.sexy=sexy;
    this.duty=duty;
      }
    public String getname()
    {
      return name;
      
    }
    public String getcode()
    {return code;
      }
      public String getsexy()
      {return sexy;
      }
      public String getduty()
      {return duty;}
      public void setachi(double achievement)
      {
        this.achievement=achievement;
      }
      public double getachi()
      {
        return achievement; 
      }
      public void print()
      {
        System.out.println("学生"+name+"的成绩是:"+achievement);
      }
      
    public String tostring()
    {
      String infor="学生姓名:"+name+";"+"学生学号:"+code+";"+"学生性别:"+sexy+";"+"学生职务:"+duty;
      return infor;
}
    public static void main(String[] args)
{
      student st1=new student("王浩");
      student st2=new student("李敏");
      student st3=new student("李杰");
      student st4=new student("王杰");
      student st5=new student("王超");
      student st6=new student("赵浩");
      student st7=new student("钱浩");
      student st8=new student("王松");
      student st9=new student("朱涛");
      student st10=new student("张杰");
      student st11=new student("王敏");
      student st12=new student("孙洁");
      student st13=new student("赵丽");
      student st14=new student("王丽");
      student st15=new student("钱珍");
      student st16=new student("王珍");
      student st17=new student("王萍");
      student st18=new student("钱萍");
      student st19=new student("王燕");
      student st20=new student("赵燕");
      student st21=new student("孙燕");
      student st22=new student("孙丽");
      student st23=new student("林丽");
      student st24=new student("张丽");
      student st25=new student("郑丽");
     student[]st=new student[]{st1,st2,st3,st4,st5,st6,st7,st8,st9,st10,st11,st12,st13,st14,st15,st16,st17,st18,st19,st20,st21,st22,st23,st24,st25};
      st1.set("王浩","1","男","班员");    
      st2.set("李敏","2","男","班员");
      st3.set("李杰","3","男","班员");
      st4.set("王杰","4","男","班员");
      st5.set("王超","5","男","班员");
      st6.set("赵浩","6","男","班员");
      st7.set("钱浩","7","男","班员");
      st8.set("王松","8","男","班员");
      st9.set("朱涛","9","男","班员");
      st10.set("张杰","10","男","班长");
      st11.set("王敏","11","女","班员");
      st12.set("孙洁","12","女","班员");
      st13.set("赵丽","13","女","班员");
      st14.set("王丽","14","女","班员");
      st15.set("钱珍","15","女","班员");
      st16.set("王珍","16","女","班员");
      st17.set("王萍","17","女","班员");
      st18.set("钱萍","18","女","班员");
      st19.set("王燕","19","女","班员");
      st20.set("赵燕","20","女","班员");
      st21.set("孙燕","21","女","班员");
      st22.set("孙丽","22","女","班员");
      st23.set("林丽","23","女","班员");
      st24.set("张丽","24","女","班员");
      st25.set("郑丽","25","女","班员");
      System.out.println(st1.tostring());
      System.out.println(st2.tostring());
      System.out.println(st3.tostring());
      System.out.println(st4.tostring()); 
      System.out.println(st5.tostring()); 
      System.out.println(st6.tostring());
      System.out.println(st7.tostring()); 
      System.out.println(st8.tostring());
      System.out.println(st9.tostring());   
      System.out.println(st10.tostring());    
      System.out.println(st11.tostring());    
      System.out.println(st12.tostring());    
      System.out.println(st13.tostring());    
      System.out.println(st14.tostring());    
      System.out.println(st15.tostring());    
      System.out.println(st16.tostring());    
      System.out.println(st17.tostring());    
      System.out.println(st18.tostring());    
      System.out.println(st19.tostring());    
      System.out.println(st20.tostring());    
      System.out.println(st21.tostring());    
      System.out.println(st22.tostring());    
      System.out.println(st23.tostring());    
      System.out.println(st24.tostring());    
      System.out.println(st25.tostring());    
      st1.setachi(87.5);
      st2.setachi(98);
      st3.setachi(78);
      st4.setachi(90);
      st5.setachi(84);
      st6.setachi(78);
      st7.setachi(91);
      st8.setachi(99.5);
      st9.setachi(64);
      st10.setachi(100);
      st11.setachi(98);
      st12.setachi(76);
      st13.setachi(88);
      st14.setachi(64);
      st15.setachi(97);
      st16.setachi(68);
      st17.setachi(90);
      st18.setachi(99);
      st19.setachi(77);
      st20.setachi(78);
      st21.setachi(67);
      st22.setachi(99);
      st23.setachi(97.5);
      st24.setachi(92);
      st25.setachi(88);
      st1.print();
      st2.print();
      st3.print();
      st4.print();
      st5.print();
      st6.print();
      st7.print();
      st8.print();
      st9.print();
      st10.print();
      st11.print();
      st12.print();
      st13.print();
      st14.print();
      st15.print();
      st16.print();
      st17.print();
      st18.print();
      st19.print();
      st20.print();
      st21.print();
      st22.print();
      st23.print();
      st24.print();
      st25.print();
     for(int i=0;i<st.length;i++)
     {
      for(int j=0;j<st.length;j++)
      {
        if(st[i].achievement<st[j].achievement)
        {
          student x;
          x=st[j];
          st[j]=st[i];
          st[i]=x;
        }
      }  
    } 
       System.out.println("成绩最好的是:"+st[24].name+",成绩是:"+st[24].achievement);  
       System.out.println("成绩最差的是:"+st[0].name+",成绩是:"+st[0].achievement); 
    }
}

解决方案 »

  1.   

    student是一个构造函数 至于为什么不加code sexy duty 刚初始化的时候只需要一个名字
    在 set(String name,String code,String sexy,String duty) 就可以设置code sexy duty 了
    mian函数主要就是生成了20多个学生实例 然后把相关信息打出来其实功能就这么简单的呀
      

  2.   

    public student(String name) 

           this.name=name;  //name 是参数传递进来的那个name,this.name是类里的那个name,

    起到什么作用?为什么就写了一个name?code sexy duty为什么不写进去? 
    通俗点说 作用就是给这个类的实例里的name赋值    
    student st1=new student("王浩");  st1里的name被赋值王浩code sexy duty当然也可以写进去 至于为什么没写就不清楚了 也许有了set(name,xxx……)可能他觉得构造函数里写这些多余了 但是一个student很显然 名字是最主要的 有了名字你就知道是哪个student了 但是给个sexy就不行 这个是从实际角度考虑的 只从代码上考虑也完全给个sexy作为构造函数的参数嘛
      

  3.   

    student类只用name来初始化,而code sexy duty没在构造函数里初始化是考虑到要先得到实例,在需要的时候再设置其他的属性,我觉得要是有必要多写个public student(String name,String code,String sexy,String duty)也可以
      

  4.   

    public student(String name) 

           this.name=name; 

    起到什么作用?为什么就写了一个name?code sexy duty为什么不写进去? 这个有什么关系 也可以一个都没有 实例化之后在set就行了
      

  5.   

    例4-5】构造方法也可以重载,// ConstructionOverload.java 
    class Demo{  
      int a,b,c;//成员变量   
     public Demo()
    {} //构造方法1  
     
    public Demo(int a) 
    {    //构造方法2    this.a = a;    }   
     
     public Demo(int a,int b) { //构造方法3  
     this.a = a; this.b = b; }  
      
    public Demo(int a,int b,int c) {//构造方法4   
     this.a = a; this.b = b; this.c = c; }     }public class ConstructionOverload{
    public static void main(String args[])
    {         //应用第一种构造方法   
     Demo aDemo = new Demo();      
      System.out.println("方法一成员变量a:"+aDemo.a);       
     System.out.println("方法一成员变量b:"+aDemo.b);      
      System.out.println("方法一成员变量c:"+aDemo.c); //应用第二种构造方法      
      Demo bDemo = new Demo(1);  
      System.out.println("方法二成员变量a:"+bDemo.a);       
     System.out.println("方法二成员变量b:"+bDemo.b);      
      System.out.println("方法二成员变量c:"+bDemo.c); ……或许这个例子更能说明一切!就是构造函数啦,构造函数也能重载,函数名要与类名相同,可以认为是类的参数。
    当实例化时,根据不同的类参数表列,选用不同的构造函数所给的参数。
      

  6.   

    我发现这样也可以
    public static void main(String[] args)
    {
    ///构造出学生对象
          student st1=new student("");
          student st2=new student("");
          student st3=new student("");
          student st4=new student("");
          student st5=new student("");
          student st6=new student("");
          student st7=new student("");
          student st8=new student("");
          student st9=new student("");
          student st10=new student("");
          student st11=new student("");
          student st12=new student("");
          student st13=new student("");
          student st14=new student("");
          student st15=new student("");
          student st16=new student("");
          student st17=new student("");
          student st18=new student("");
          student st19=new student("");
          student st20=new student("");
          student st21=new student("");
          student st22=new student("");
          student st23=new student("");
          student st24=new student("");
          student st25=new student("");
      

  7.   

    发现运行后19出现乱码
    --------------------Configuration: <Default>--------------------
    学生姓名:王浩;学生学号:1;学生性别:男;学生职务:班员
    学生姓名:李敏;学生学号:2;学生性别:男;学生职务:班员
    学生姓名:李杰;学生学号:3;学生性别:男;学生职务:班员
    学生姓名:王杰;学生学号:4;学生性别:男;学生职务:班员
    学生姓名:王超;学生学号:5;学生性别:男;学生职务:班员
    学生姓名:赵浩;学生学号:6;学生性别:男;学生职务:班员
    学生姓名:钱浩;学生学号:7;学生性别:男;学生职务:班员
    学生姓名:王松;学生学号:8;学生性别:男;学生职务:班员
    学生姓名:朱涛;学生学号:9;学生性别:男;学生职务:班员
    学生姓名:张杰;学生学号:10;学生性别:男;学生职务:班长
    学生姓名:王敏;学生学号:11;学生性别:女;学生职务:班员
    学生姓名:孙洁;学生学号:12;学生性别:女;学生职务:班员
    学生姓名:赵丽;学生学号:13;学生性别:女;学生职务:班员
    学生姓名:王丽;学生学号:14;学生性别:女;学生职务:班员
    学生姓名:钱珍;学生学号:15;学生性别:女;学生职务:班员
    学生姓名:王珍;学生学号:16;学生性别:女;学生职务:班员
    学生姓名:王萍;学生学号:17;学生性别:女;学生职务:班员
    学生姓名:钱萍;学生学号:18;学生性别:女;学生职务:班员
    学生姓赫糯?学生学号:19;学生性别:女;学生职务:班员
    学生姓名:赵燕;学生学号:20;学生性别:女;学生职务:班员
    学生姓名:孙燕;学生学号:21;学生性别:女;学生职务:班员
    学生姓名:孙丽;学生学号:22;学生性别:女;学生职务:班员
    学生姓名:林丽;学生学号:23;学生性别:女;学生职务:班员
    学生姓名:张丽;学生学号:24;学生性别:女;学生职务:班员
    学生姓名:郑丽;学生学号:25;学生性别:女;学生职务:班员
    学生王浩的成绩是:87.5
      

  8.   

    当然,这个默认的空字符串也是程序写好了的,在
      String name="";
      String code="";
      String sexy="";
      String duty=""; 
    这里
      

  9.   

    我这里没出现乱码,Windows XP+JDK1.6+Eclipse3.4
      

  10.   

    构造函数
    这些让Eclipse自动生成就好了
      

  11.   

    public student(String name)
    {
          this.name=name;
    }就是给一个刚生成的student对象初始化,赋初值,改成下面你就会自然明白
    public student(String stuName)
    {
          this.name=stuName;
    }至于“为什么就写了一个name?code sexy duty为什么不写进去?”就搞不明白了,加进去也可以嘛!
      

  12.   

    public student(String name) //这个是构造方法

          this.name=name; 

    属性可以:构造初始化 和 set()/get()初始化 student st1=new student("王浩"); 
          student st2=new student("李敏"); 
          student st3=new student("李杰"); 
          student st4=new student("王杰"); 
          ...
          ...
    构造方法是一个入参String name,所以new对象时 例如student st1=new student("王浩"); 就只能只有一个实参
    当然你也可以把code sexy duty写进去
    public student(String name,String code,String sexy,String duty) 

          this.name=name;
          this.code = code;
          this.sexy = sexy;
          this.duty = duty;
    }这是student st1=new student("王浩"); 
          student st2=new student("李敏"); 
          ...
    就得改成student st1=new student("王浩","1","男","班员"); 
           student st2=new student("李敏","2","女","班员"); 
      

  13.   

     this.name = name是指将参数中的值赋给实例变量当中