将对象变量添加到数组

时间:2016-03-18 21:15:49

标签: java object

我想用addStudent()方法将这些对象的名称变量插入studentarray。我使用了get方法但是它给了我错误。我的错误是什么?这是我尝试过的:

public class Student {
    String name;
    int grade;
    public Student(String name, int grade) {
        this.name=name;
        this.grade=grade;
    }
    public String toString() {
        return "name:"+this.name+"grade:"+this.grade;
    }
    public String getName() {
        return name;
    }
}

public class Course {
    Student[]studentArray=new Student[3];

    public Course() {}

    public void addStudent(Student s) {
        for (int i=0;i<studentArray.length;i++) {
            if (studentArray[i] == null) {
                studentArray[i] =s.getName();
                break;                       
            }
        }       
    }
}

4 个答案:

答案 0 :(得分:1)

1.您不能在一个文件中拥有两个公共类。 2.您无法将String转换为Student对象。 3.当您执行Student[]studentArray=new Student[3]时,您不是创建对象而是创建3个引用。它与执行Student studentArray三次相同,其中studentArray只是一个引用。 4。studentArray[i].getName();是使用对象数组调用方法的正确方法。

public class Student {
String name;
int grade;
public Student(String name, int grade) {
    this.name=name;
    this.grade=grade;
}
Student(){

}
public String toString() {
    return "name:"+this.name+"grade:"+this.grade;
}
public String getName() {
    return name;
}
}

 class Course {

 public static void main(String [] args) {
 Student[]studentArray=new Student[3];
 for( int i =0; i < studentArray.length; i++ ) {
    studentArray[i] = new Student();
  }

 for (int i=0;i<studentArray.length;i++) {
        if (studentArray[i] == null) {
            studentArray[i].getName();
            break;                       
        }
    }       
} 
}

如果对你有所帮助,请考虑接受答案。我将非常感激。

答案 1 :(得分:0)

试一试:

studentArray[i] = s;

而不是:

studentArray[i] = s.getName();

因为您的数组存储学生类型值,而不是它们的名称(String类实例)

或者您可以将数组类型更改为String:

String[] studentArray = new String[3];

而不是:

Student[] studentArray = new Student[3];

答案 2 :(得分:0)

您的数组类型是学生,并且您正在尝试存储一个字符串,即学生的名称,这就是它给出错误的原因。

答案 3 :(得分:0)

我假设错误发生在此行

studentArray[i] =s.getName();

因为您尝试将String类型的数据分配给Student类型的变量。您可以通过简单地将参数中的学生对象分配给studentArray中的空索引来解决此问题。这是它应该的样子,

 public void addStudent(Student s) {
        for (int i=0;i<studentArray.length;i++) {
            if (studentArray[i] == null) {
                studentArray[i] = s
                break;                       
            }
        }       
 }