打印对象属性时,是自己实现的show函数,此时可以用toString方法实现。
class Person{
private String name;
private int age;
public Person(String name,int age){
this.age = age;
this.name = name;
}
public void show(){
System.out.println("name:"+name+" " + "age:"+age);
}
//方法重写
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
public class Demo {
public static void main(String[] args){
Person person = new Person("cheng",20);
person.show();
System.out.println(person);
}
}
输出1(当有toString方法覆写时):
name:cheng age:20
Person{name=‘cheng’, age=20}
输出2(当没有toString方法覆写时):
name:cheng age:20
Person@1540e19d
- toString方法可以将对象自动转成字符串。
- toString方法会在println的时候被自动调用;
- 将对象转换成字符串的操作,称为序列化;
- toString是Object类提供的方法,自己创建的Person类默认继承自Object类,可以重写toString方法实现自己的转换字符串方法;
- @Override在Java中称为“注解”,此处的toString方法是重写了父类的方法;
- 快捷键alt+f12(insert)