[英]Adding object variable to array
我想使用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;
}
}
}
}
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;
}
}
}
}
如果可以帮助您,请考虑接受答案。我将不胜感激。
试试看:
studentArray[i] = s;
代替:
studentArray[i] = s.getName();
因为您的数组存储的是学生类型值,而不是其名称(字符串类实例)
或者,您可以将数组类型更改为String:
String[] studentArray = new String[3];
代替:
Student[] studentArray = new Student[3];
您的数组类型是Student,并且您试图存储一个String,这是学生输入错误的原因。
我假设错误发生在这一行
studentArray[i] =s.getName();
因为您正在尝试将String类型的数据分配给Student类型的变量。 您可以通过简单地将参数中的student对象分配给studentArray
的空索引来解决此studentArray
。 这就是它的样子,
public void addStudent(Student s) {
for (int i=0;i<studentArray.length;i++) {
if (studentArray[i] == null) {
studentArray[i] = s
break;
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.