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方法。