|
对象的打印
我们创建一个Person类
class Preson {
public String name;
public int age;
public void func() {
System.out.println("⋌༼ •̀ ⌂ •́ ༽⋋");
}
}
如果我们要写一个show函数输出成员:
public void show() {
System.out.println("姓名:" + name + " 年龄:" + age);
}
但如果我们有非常多
的字段
,我们自己写show函数会非常麻烦,这时我们可以用idea
编译器自己生成,类似show函数
我们就会生成一个toSting()
的方法。
方法1: 在主函数中调用方法,输出。
public static void main(String[] args) {
Person person = new Person();
System.out.println(person.toString());
}
方法2: 直接person.sout
public static void main(String[] args) {
Person person = new Person();
System.out.println(person);
}
这里我们有一个 疑问 ,person
不是存的是地址吗?为什么能输出的不是地址呢?
我们将刚刚生成的toSting
方法屏蔽一下试试,我们可以发现输出的是地址的哈希值。
为什么有了toSting()输出的就变了呢?
我们打开println
的原码,画一个图来分析一下
# 注意 #
如果按照上图toString()这个方法,就会输出person的地址;
而如果我们自己重新实现了一个toString(),编译器就会调用我们自己实现的这个toSting()方法。
我们注意到出现了一个@Override
表注解:“代表这个方法是重写父类的”。
|
关于对象的打印讲解就结束了,希望对大家有所帮助,如果有问题欢迎评论指出,会积极改正!!