【发布时间】:2014-09-17 00:49:43
【问题描述】:
好的,现在我想我已经放弃了为应该是一个简单问题找到解决方案的所有希望。基本上,我正在创建一个学生记录系统,将学生的详细信息存储在一个 ArrayList 中。我首先在 Student 类中创建了一个构造函数来指定每个学生将拥有的条目。然后我在主类(即具有 main 方法的类)中创建了 Student 类的实例,然后将学生对象添加到 studentList ArrayList。
顺便说一句,我最初的目标不是硬编码学生详细信息,而是让用户输入详细信息,然后我将使用 Scanner 或 BufferedReader 对象来获取存储在 Student 对象中的详细信息,然后到 ArrayList 但我也遇到了麻烦;所以我可能会在完成这个问题后立即解决这个问题。
无论如何,我希望输出打印出学生的详细信息,但我得到了一个内存位置(即 [studentrecordsys.Student@15c7850])。我知道我需要重写 toString 方法,但是我似乎无法做到这一点。输入 toString 方法的 @Override 代码块后,我到处都会遇到语法错误。这是我尝试过的:
import java.util.*;
class Student {
private String studentID;
private String studentName;
private String studentAddress;
private String studentMajor;
private int studentAge;
private double studentGPA;
Student (String studentID, String studentName, String studentAddress, String
studentMajor, int studentAge, double studentGPA){
this.studentID=studentID;
this.studentName=studentName;
this.studentAddress=studentAddress;
this.studentMajor=studentMajor;
this.studentAge=studentAge;
this.studentGPA=studentGPA;
}
}
public static void main(String[] args) {
Student ali = new Student("A0123", "Ali", "13 Bond Street", "BSc Software Engineering", 22, 3.79);
List<Student> studentList = new ArrayList<>();
studentList.add(ali);
@Override
String toString() {
StringBuilder builder = new StringBuilder();
builder.append(ali).append(studentList);
return builder.toString();
}
System.out.println(builder);
}
【问题讨论】: