java重写toString()⽅法
toString()⽅法是Object类的⽅法,调⽤toString()会返回对象的描述信息。
1)为什么重写toString()⽅法呢?
如果不重写,直接调⽤Object类的toString()⽅法,打印的是该对象的内存地址(类名@哈希码值)。如下代码所⽰:
class Person {
String name;
String sex;
int age;
public Person() {}
public Person(String name, String sex, int age) {
this.name = name;
this.sex = sex;
this.age = age;
}
}
class Demo {
public static void main(String[] args) {
Person p = new Person();
System.out.println(p);
}
}
运⾏结果:Person@10dea4e
从上⾯代码可知,调⽤p的toString⽅法,打印出来的信息是类名+内存地址值。不符合要求。根据我们之前学的继承,假如⽗类的指定的功能能不能满⾜要求,那么⼦类可以复写⽗类的功能函数,那么该对象再调⽤toString()⽅法时,则会调⽤⼦类复写的toString⽅法。
(2)⼀般什么时候重写toString⽅法?
⼀般在编写代码,POJO类必须重写toString⽅法。如果继承了另⼀个POJO类,注意在前⾯加⼀下String。
POJO(Plain Ordinary Java Object)即普通的java类,具有⼀部分getter/setter⽅法的那种类就可以称作为POJO类。重写toString()⽅法后,在⽅法执⾏跑出异常时,可以直接调⽤POJO的toString()⽅法打印其属性值,便于排查问题。
(3)如何重写toString()?
toString()⽅法重写代码样例如下:
class Person {
String name;
String sex;
int age;
public Person() {
}
public Person(String name, String sex, int age) {
this.name = name;
java的tostring方法this.sex = sex;
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", sex=" + sex + ", age=" + age + "]";
}
}
编程习惯:开发者要对⾃定义的类重写toString(),对对象做详细的说明。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论