原代码
/*主类*/
import java.util.ArrayList;
public class arraystudent {
public static void main(String[] args) {
ArrayList<student> arrayy=new ArrayList<student> ();
student s1=new student("河谷",11);
student s2=new student("哈哈",19);
student s3=new student("吴昊天",98);
arrayy.add(s1);
arrayy.add(s2);
arrayy.add(s3);
System.out.println("遍历学生数据如下");
for(int i=0;i<3;i++) {
System.out.println(arrayy.get(i));
}
}
}
/*学生类*/
public class student {
private String name;
private int age;
public student() {};
public student(String name,int age) {
this.name=name;
this.age=age;
}
public void setage(int age){
this.age=age;
}
public int getage() {
return age;
}
public void setname(String name) {
this.name=name;
}
public String getname() {
return name;
}
}
错误打印结果:
遍历学生数据如下
student@156643d4
student@123a439b
student@7de26db8
错误改正:修改主类遍历for循环内打印语句,学生类不需要改
错误原因在于我们要打印的是学生对象,我们打印arrayy.get(对象)得到是对象的地址或(不确定),而我们真正要打印的是对象里面的存储的数据,则需要新建对象,使用方法得到数据后再打印
import java.util.ArrayList;
public class arraystudent {
public static void main(String[] args) {
ArrayList<student> arrayy=new ArrayList<student> ();
student s1=new student("河谷",11);
student s2=new student("哈哈",19);
student s3=new student("吴昊天",98);
arrayy.add(s1);
arrayy.add(s2);
arrayy.add(s3);
System.out.println("遍历学生数据如下");
for(int i=0;i<3;i++) {
student s=arrayy.get(i);
System.out.println(s.getname()+","+s.getage());
}
}
}