我正在用 Java 进行一些练习,并且教科书中的一个示例仍然困扰着我。问题如下:
"P8.7 修改 How To 7.1 的成绩簿应用程序,使其可以处理多个 学生。首先,询问用户所有学生的姓名。然后读入所有的分数 测验,提示每个学生的分数。最后打印所有学生的名字 以及他们的最终成绩。仅使用单个类和静态方法。 P8.8 使用多个类重复练习 P8.7。修改 GradeBook 类,使其 收集 Student 类型的对象。每个这样的对象都应该有一个分数列表。”
我目前正在进行 8.8 练习。我了解如何使用多个类,并对如何解决这个问题有一个大致的了解。早些时候,我创建了一个充当“银行”的程序。该银行包含多个“帐户”,这些“帐户”作为“BankAccount”类的单独对象包含。每个帐户都有单独的余额和帐号。我能够在“银行”类中创建一个方法来按帐号搜索。这没有得到余额,但只告诉帐户是否存在。
在我当前的问题中,我有一个 GradeBook 类,其中包含“Student”类的许多对象。这些“学生”中的每一个都将包含一个以 ArrayList 形式保存的成绩列表。我遇到的问题是确切地知道如何为学生调用单独的数组列表以便可以显示它。我尝试了很多方法,但似乎无法全神贯注于这样做。有人可以查看我的代码并告诉我如何检索最终测试人员类(class)中学生的个人成绩列表吗?我的测试人员类(class)尚未完成,因为我被困在这一步,但我相信您可以了解情况..
GradeBookTester 类
package gradebook_multi_class;
import java.util.ArrayList;
import java.util.Scanner;
import bankAccount.Bank;
public class GradebookTester
{
public static void main(String args[]){
Scanner in = new Scanner(System.in);
int counterMain=0;
ArrayList<String> list = new ArrayList<String>();
GradeBook book = new GradeBook();
System.out.println("Welcome to the gradebook utility!");
do{
System.out.println("Please enter a student name: ");
String name = in.next();
System.out.println("Please enter the student quiz grade: ");
String grade = in.next();
list.add(grade);
list.add("3");
book.addStudent(new Student(name,list));
System.out.println("Do you have more students to add? (Y/N)");
String input = in.next();
if(input.equalsIgnoreCase("Y")){
}else{
counterMain=1;
}
}while(counterMain==0);
}
}
成绩册类
package gradebook_multi_class;
import java.util.ArrayList;
public class GradeBook
{
private ArrayList<Student> students;
public GradeBook(){
students = new ArrayList<Student>();
}
public void addStudent(Student a){
students.add(a);
}
public Student find(String aName){
for(Student a: students){
if(a.getName().equals(aName))
return a;
}
return null;
}
}
学生类(class)
package gradebook_multi_class;
import java.util.ArrayList;
public class Student
{
private String studentName;
private ArrayList<String> grades = new ArrayList<String>();
public Student(String aName, ArrayList<String> list){
studentName = aName;
grades=list;
}
public String getName(){
return studentName;
}
public ArrayList<String> getGrades(){
return grades;
}
}
最佳答案
您已经在 GradeBook 类的 find 方法中完成了所有工作。
你只需在主类中这样做:
Student desiredStudent = book.find("Joe");
desiredStudent.getGrades();
关于java - 通过多个类访问另一个数组列表内的数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33351067/