【java】 【ArrayList储存学生对象并遍历】 改正 错误:打印不出对象

这篇博客讲述了在Java中使用ArrayList存储学生对象并遍历时遇到的问题,即打印出的是对象的内存地址而非实际内容。作者通过修改主类的遍历循环内的打印语句,改为调用学生对象的getname和getage方法,成功打印出学生的名字和年龄。博客提供了修正后的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原代码

/*主类*/

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());
    }


  }
}
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老坛酸菜吃鸭子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值