Java 输出列表错误?

Java 输出列表错误?,java,arrays,list,oop,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 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 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;
    }
}
@Override
public String toString() {
    // TODO Auto-generated method stub
    return  firstname + " " + lastname;
}
主要的想法是,我尝试创建一个名单,列出10名学生的名字、姓氏和年级

现在,当我尝试在main方法中打印列表时,会显示以下内容:[Student@6fbae5f5]

我想让它显示的是:前10名

请注意,我尝试将更多学生添加到列表中,列表必须如下所示:

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);
    }
}
FirstName1 LastName1 10

名字2姓氏2 3

名字3姓氏3 7
在学生课堂上添加以下代码

@Override
public String toString() {
    return "Student [getFirstname()=" + getFirstname() + ", getLastname()="
            + getLastname() + ", getGrade()=" + getGrade() + "]";
}

由于每个对象都有
toString()
方法,因此默认值是显示类名表示,然后添加
@
符号和hashcode。在本例中,您正在打印对象本身

如果要打印
arrayList
的内容,应在其上循环:

for(Student student : arrayList) {
    System.out.println(student)
}

之后,您将在
Student

1中重写
toString
。将此添加到Human类:

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;
    }
}
@Override
public String toString() {
    // TODO Auto-generated method stub
    return  firstname + " " + lastname;
}
二,。将此添加到学生课堂:

@Override
public String toString() {
    // TODO Auto-generated method stub
    return super.toString() + " " + grade;
}

重写
toString
。关闭,但这不会编译。您需要将字段的范围更改为protected,或者对firstname和lastname使用getter方法。