当前位置: 移动技术网 > IT编程>开发语言>Java > java中打印一个数组名或者对象名,出来一个地址是怎么回事?

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

2020年07月22日  | 移动技术网IT编程  | 我要评论

在这里插入图片描述

相信大家在学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);
 }

下面看运行结果:
在这里插入图片描述
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 +
                '}';
    }
}

然后测试:
在这里插入图片描述

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

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网