欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java中打印一个数组名或者对象名,出来一个地址是怎么回事?

程序员文章站 2024-01-20 16:09:40
相信大家在学java的过程中,一定打印过对象名:下面直接看这个例子:public class Student { private String name; private int age; public Student() { } public Student(String name, int age) { this.name = name; this.age = age; } public String get...

java中打印一个数组名或者对象名,出来一个地址是怎么回事?

相信大家在学java的过程中,一定打印过对象名:下面直接看这个例子:

public class Student {
    private String name;
    private int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

}

然后下面测试:

public static void main(String[] args) {
     Student stu = new Student();
     System.out.println(stu);
 }

下面看运行结果:
java中打印一个数组名或者对象名,出来一个地址是怎么回事?
WX,我打印的不是对象吗,为什么给我打印出这么一堆不是人读的玩意,这个就要从创建对象时说起。
在创建对象时,默认的toString方法是Object中的toString()方法

public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

所以打印的就是这个样子的!那么我们就可以在Student中重写toString方法,覆盖掉Object中的:

public class Student {
    private String name;
    private int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

然后测试:
java中打印一个数组名或者对象名,出来一个地址是怎么回事?

这下就可以打印了,所以在使用时必须重写toString方法,否则默认的就是Object的toString方法!

本文地址:https://blog.csdn.net/weixin_42893085/article/details/107474730

相关标签: java