当前位置: 代码迷 >> Java相关 >> 帮看看。。这个怎么改、、
  详细解决方案

帮看看。。这个怎么改、、

热度:103   发布时间:2013-02-28 10:52:00.0
帮看看。。这个怎么改、、
void addStu(String name,int age,String arr[]){
        Student stu1=new Student();
        stu1.setName(name);
        stu1.setAge(age);
        int i=(arr.length);
        stu1.setNum(i);
        if(i==99999){
            System.out.println("学生人数以到最大,不能再添加了");
        }else{
            arr[i]=stu1;//这个stu1报错
        }

      想半天不明白哦、、、为啥那里报错、、
搜索更多相关的解决方案: arr  void  

----------------解决方案--------------------------------------------------------
void addStu(String name,int age,Student[] arr){
        Student stu1=new Student();
        stu1.setName(name);
        stu1.setAge(age);
        int a;
for(int i ;i<arr.length;i++){
    if(arr[i]==null){
    a=i;
    retunrn a;
    }
}
        stu1.setNum(i);
        if(i==99999){
            System.out.println("学生人数以到最大,不能再添加了");
        }else{
            arr[a]=stu1;
        }
好吧。。总算发现了。。这样子就好了、、、

      


[ 本帖最后由 SUXU19881102 于 2013-2-28 11:20 编辑 ]
----------------解决方案--------------------------------------------------------
虽然说错是不会错了 但是不合理的地方太多

----------------解决方案--------------------------------------------------------
????排版不优美
----------------解决方案--------------------------------------------------------
以下是引用SUXU19881102在2013-2-28 10:56:38的发言:

void addStu(String name,int age,Student[] arr){
        Student stu1=new Student();
        stu1.setName(name);
        stu1.setAge(age);
        int a;
for(int i ;i
你这样能实现你要的功能吗?我有些看不懂,我的想法是写一个Student的工厂方法。别把什么东西都放到addStu()里。因为你这样搞来搞去其实就一个 stu1 没有其它的 对象了。

[ 本帖最后由 ren829 于 2013-2-28 12:29 编辑 ]
----------------解决方案--------------------------------------------------------
回复 3楼 hhwz
public class test {
    public static Student[] arr = new Student[99999];

    public static void addStu(String name, int age) {
        for (int i = 0; i < arr.length; i++) {
            if(arr[arr.length-1]!=null&&i==arr.length-1){
                System.out.println("超过最大添加人数");
                break;
            }
            if (arr[i] == null) {
                Student stu1 = new Student();
                stu1.setName(name);
                stu1.setAge(age);
                stu1.setNum(i);
                arr[i]=stu1;
                break;
            }
        }
      

    }

    public static void main(String[] args) {
        addStu("123",123);
        for(Student stu1 : arr){
            if(stu1!=null){
                System.out.println(stu1.getNum()+"\t"+stu1.getName()+"/t"+stu1.getAge());
            }
        }
        System.out.println("------------------------------");
        addStu("321",321);
        for(Student stu1 : arr){
            if(stu1!=null){
                System.out.println(stu1.getNum()+"\t"+stu1.getName()+"/t"+stu1.getAge());
            }
        }
        addStu("456",456);
      

    }
//你看看这个和楼主的有什么区别

----------------解决方案--------------------------------------------------------
看的太累。。。
----------------解决方案--------------------------------------------------------
版主的程序也没怎么看懂,不知道这个程序要实现什么目的?望解释。
----------------解决方案--------------------------------------------------------
它的想法只是用一个数组来保存 Student
如果保存的数量超过了数组的最大长度就 输入超过长度,仅此而已

----------------解决方案--------------------------------------------------------
擦,搂住在方法里搞一个new Student()把我搞蒙了。
我一直以为 这个东西要这么写
Test{
Student stu1;
Test(Student stu1()){
this.stu1=stu1;
  }
}
构造函数引入一个 Student 引用;Student 类做一个 getStudent(){return new Student();}

      
----------------解决方案--------------------------------------------------------
  相关解决方案