输出列表错了吗?

时间:2014-09-10 09:44:04

标签: java arrays list oop

我有这样的代码:

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 ......................

3 个答案:

答案 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;
}