我是 Java 新手,我目前正在将 BlueJ 用于一个项目。我在访问此类对象的 ArrayList 的 ArrayList 内的对象时遇到问题。假设我有一个学生对象:
public class Student
{
private String homeAddress;
private String monthBorn;
private String yearBorn;
private int;
public Student(String homeAddress, String monthBorn, String yearBorn,
int finalGrade)
{
this.homeAddress = homeAddress;
this.monthBorn = monthBorn;
this.yearBorn = yearBorn;
this.finalGrade = finalGrade;
}
}
然后是获取地址、月份、年份和年级的方法。然后我有一个类 Class,它是一个学生对象的 ArralyList:
public class Classroom
{
private String classroom;
private ArrayList<Student> listOfStudents;
public Classroom (String classroom)
{
this.classroom = classroom;
listOfStudents = new ArrayList<Student>();
}
}
这个类包括添加学生对象的方法,列出类中的所有学生(listAllStudentsInClassroom),它返回一个学生的ArrayList,找到类中成绩最高的学生(getHighestGradeStudent),以及一个学生列表高于一定数量的等级。最后是 School 类,它是 Classroom 的 ArrayList:
public class School
{
private ArrayList<Classroom> school;
public School()
{
school = new ArrayList<Classroom>();
}
}
这包括添加类对象的方法,它应该包括返回具有最高成绩的学生的方法以及所有班级中成绩高于某个班级的学生的列表。但是,我只能通过添加的第一个类来迭代方法!到目前为止,这是 getHighestGradeStudentEver 的代码:
public Student getHighestGradeStudentEver ()
{
Student s = school.get(0).getHighestGradeStudent();
int highestGrade = school.get(0).listAllStudentsInClassroom().get(0).getFinalGrade();
for(int i =1; i< school.size(); i++){
int highestGrade = school.get(i).listAllStudentsInClassroom().get(i).getFinalGrade();
if(value > (highestValue)){
highestValue = value;
s = school.get(i).getHighestGradeStudent();
}
}
return s;
}
这仅返回从添加到学校的第一个教室对象中成绩最高的学生。我究竟做错了什么?对不起,这个问题很长,我尽量说清楚!