【问题标题】:set in array from one method and get from another method in java (necessary!!)从一种方法在数组中设置并从java中的另一种方法获取(必需!!)
【发布时间】:2015-01-07 06:46:13
【问题描述】:

我从班级学生那里做了一个数组

student [] stu=new student[100];

我在课堂 student op 中,我想将方法​​ insert 中的名称和代码插入数组 stu

到目前为止一切正常,但是当我想从 student op 类中的另一个方法(如 delete)中获取我的姓名和代码时,它显示我的数组 stu是空的。问题出在哪里?如果我删除该行
stu[0]=新学生(); 在 delet 方法中 Net beans 显示错误!!

public class studentop {

     student [] stu=new student[100];

    private int counter=0;
    int con=0;
    public int edd;

    public void insert(int edame){

        String ans;
        Scanner input=new Scanner(System.in);
        for(int i=edame;i<100;i++){
            System.out.println("add more student? ");
            ans=input.next();
            if(ans.equals("y")){

                String thename;

                stu[i]=new student();
                System.out.println("insert name  "+(i+1)+" : ");

                thename = input.next();
                stu[i].setname(thename);

                System.out.println("insert code  "+(i+1)+" : ");
                int thecode;
                thecode = input.nextInt();
                stu[i].setcode(thecode);

                System.out.println(stu[i].getcode());

                for(int m=0;m<=3;m++){
                    System.out.println("add mark  "+(m+1)+" ? ");
                    String ans2;
                    ans2=input.next();
                    if(ans2.equals("y")){
                        switch (m){

                            case 0:
                                System.out.println("mark"+(m+1)+" : ");
                                int mark;
                                mark=input.nextInt();
                                stu[i].setmark(mark);
                                break;

                            case 1:
                                System.out.println("mark"+(m+1)+" : ");
                                //  int mark;
                                mark=input.nextInt();
                                stu[i].setMark2(mark);
                                break;

                            case 2:
                                System.out.println("mark"+(m+1)+" : ");
                                //  int mark;
                                mark=input.nextInt();
                                stu[i].setMark3(mark);
                                break;

                            case 3:
                                System.out.println("mark"+(m+1)+" : ");
                                // int mark;
                                mark=input.nextInt();
                                stu[i].setMark4(mark);
                                break;
                        }
                    }
                    else{
                        break;
                    }
                }
                System.out.println(stu[i].getname());//aztarighe get name az 
            }
            else {
                edame=i;
                edd=edame;
                break;
            }
        }//end for
    }
    public void delete(){
        stu[0]=new student();//if I delet this line it shows an error!
        System.out.println(stu[0].getcode());
    }
}

这是我班的学生

public class student {
    public String name;
    public int code;
    public double mark;
    private double mark2;
    private double mark3;
    private double mark4;

    public void setname(String sourcename){
        name=sourcename;
    }
    public String getname(){
        return name;
    }

【问题讨论】:

标签: java arrays class methods


【解决方案1】:

您在 student 中没有 .get code() 函数,因此您不能在导致错误的学生对象上调用它。 当你这样做时: stu[0].getcode() 因为 stu[] 是一个学生对象数组,你不能在学生上调用 .getcode() 所以你不能在这个数组的成员上调用它。

【讨论】:

  • 不,我没有放在这里,但是像名字一样,我在学生中做了 setcode 和 getcode 方法
猜你喜欢
  • 1970-01-01
  • 2011-07-05
  • 2021-08-11
  • 2021-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-08
相关资源
最近更新 更多