我有这样的代码:
public class Main {
public static void main(String[] args) {
List<Object> arrayList = new ArrayList<Object>();
arrayList.add(new Student("First", "Last", "10"));
System.out.println(arrayList);
}
}
学生班是:
public class Student extends Human {
private String grade;
public Student(String first, String last, String gradeValue) {
super(first, last);
this.setGrade(gradeValue);
}
public void setGrade(String grade) {
this.grade = grade;
}
public String getGrade() {
return grade;
}
}
它将扩展到人类:
public abstract class Human {
private String firstname;
private String lastname;
public Human(String first, String last) {
this.setFirstname(first);
this.setLastname(last);
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public String getLastname() {
return lastname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getFirstname() {
return firstname;
}
}
主要想法是我尝试使用FirstName LastName和Grade创建一个列表10名学生。
现在当我尝试在main方法中打印列表时,它会告诉我:[Student @ 6fbae5f5]。
我希望它显示的是:First Last 10。
请注意,我尝试将更多学生添加到列表中,并且必须显示如下:
FirstName1 LastName1 10
FirstName2 LastName2 3
FirstName3 LastName3 7 ......................
答案 0 :(得分:1)
在学生课程中添加以下代码
@Override
public String toString() {
return "Student [getFirstname()=" + getFirstname() + ", getLastname()="
+ getLastname() + ", getGrade()=" + getGrade() + "]";
}
答案 1 :(得分:0)
由于每个对象都有toString()
方法,因此默认显示类名表示,然后添加@
符号,然后添加哈希码。在您的情况下,您将自己打印对象。
如果要打印arrayList
的内容,则应循环播放:
for(Student student : arrayList) {
System.out.println(student)
}
在您toString
中覆盖Student
之后。
答案 2 :(得分:0)
1.将此添加到人类:
@Override
public String toString() {
// TODO Auto-generated method stub
return firstname + " " + lastname;
}
2。将其添加到学生班:
@Override
public String toString() {
// TODO Auto-generated method stub
return super.toString() + " " + grade;
}