【发布时间】:2019-03-22 19:43:48
【问题描述】:
所以我想使用一种方法将多个对象写入各自的文件。但是我不知道如何在不定义特定对象的情况下导入对象数组。
人是类纯粹用于将创建的对象存储在数组中,因此更容易跨其他类访问。
例如
public class People {
private Student[10];
private Teacher[10];
public void setStudentArray(Student, index) {
Student[index] = Student;
}
public void setTeacherArray(Teacher, index) {
Teacher[index] = Teacher;
}
}
public class Student extends People {
String name;
int StudentID;
public String getName() {
return name;
}
}
public class Teacher extends People {
String name ;
int Teacher ID;
public String getName() {
return name;
}
}
public class Main {
People p = new People();
public void main (String[] args) {
Student s = new Student("default-name" , 1);
p.setStudentArray(s, 0);
Teacher t = new Teacher("default-name", 1);
p.setTeacherArray(t, 0);
outputName(p.getStudentArray, 0);
outputName(p.getTeacherArray, 0)
}
//THIS IS WHERE I AM STRUGGLING I dont know how to pass teachers or students array to it.
//I want the Object[] parameter to accept both Student[] and Teacher[]
public void outputName(Object[], index) {
System.out.println(Object[index].getName);
}
}
我认为我的方法采用 Object[] 是错误的,但我不知道如何处理它。我认为问题在于 Object[] 与 Teacher[] 和 Student[] 完全不同,这就是我出错的地方。
我想在 Teacher 和 Student 的类中都使用 .getName 方法来打印 Student 的教师的姓名。 (只是让我可以看到传递正在工作。)
如果这是不可能的,我想我不会尝试可以采用不同对象的方法。
我知道我可以只使用两种方法,一种用于学生,一种用于教师,但我希望该方法适用于多个对象,以便可以向其中添加更多对象数组。
【问题讨论】:
-
它应该是
People[]类型以便于多态性,并给它一个标识符 -
啊,我明白了。抱歉,标识符是什么意思?
-
在 Java 中,数组是对象,正如您在此答案中看到的那样:stackoverflow.com/questions/8781022/… 您应该在您创建的 People 实例上设置数组:p.setStudentArray(s, 0)。对于教师数组。
-
哦,对不起,我不是故意离开 setStudentArray(s, 0) 的 p,这是我的一个错误。感谢您指出这一点。我现在已经改变了。但是我仍然不确定如何将该数组传递给 outputName 方法。
标签: java object parameter-passing