java 中重写toString()方法
toString()方法 一般出现在System.out.println(类名.toString());toString()是一种自我描述方法 本身返回的是 getClass().getName() + “@” +Integer.toHexString(hashCode());也就是 类名 + @ +hashCode的值重写toString() 只会对类生效,并不能字符串生效; 例如原链接:htt
toString()方法是Object类的方法【故,所有类都有这个方法】,调用toString()会返回对象的描述信息。
1)为什么重写toString()方法呢?
如果不重写,直接调用Object类的toString()方法,打印的是该对象的内存地址(类名@哈希码值)。如下代码所示:
classPerson {
String name;
String sex;intage;publicPerson() {}
public Person(String name, String sex, intage)
{this.name =name;this.sex =sex;this.age =age;
}}
classDemo {
public static voidmain(String[] args) {
Person p= newPerson();
System.out.println(p);
}}
运行结果:Person@10dea4e
从上面代码可知,调用p的toString方法,打印出来的信息是类名+内存地址值。不符合要求。根据我们之前学的继承,假如父类的指定的功能能不能满足要求,那么子类可以复写父类的功能函数,那么该对象再调用toString()方法时,则会调用子类复写的toString方法。
(2)一般什么时候重写toString方法?
一般在编写代码,POJO类必须重写toString方法。如果继承了另一个POJO类,注意在前面加一下super.toString。
POJO(Plain Ordinary Java Object)即普通的java类,具有一部分getter/setter方法的那种类就可以称作为POJO类。重写toString()方法后,在方法执行跑出异常时,可以直接调用POJO的toString()方法打印其属性值,便于排查问题。
(3)如何重写toString()?
toString()方法重写代码样例如下:
classPerson {undefined
String name;
String sex;intage;publicPerson() {undefined
}public Person(String name, String sex, intage) {this.name =name;this.sex =sex;this.age =age;
}
@OverridepublicString toString() {return “Person [name=” + name + “, sex=” + sex + “, age=” + age + “]”;
}
}
编程习惯:开发者要对自定义的类重写toString(),对对象做详细的说明。
toString()方法 一般出现在System.out.println(类名.toString());
toString()是一种自我描述方法 本身返回的是 getClass().getName() + “@”+Integer.toHexString(hashCode());
也就是 类名 + @ +hashCode的值
重写toString() 只会对类生效,并不能字符串生效; 例如
原链接:
https://www.cnblogs.com/jllj/p/6370094.html
https://blog.csdn.net/weixin_35078410/article/details/114147944
更多推荐
所有评论(0)