《疯狂Java讲义精粹》读书笔记6 ------ 重写toString
====================《疯狂Java讲义精粹》读书笔记6 ------ 重写toString==========================
我们经常用System.out.println()来打印一些基本类型的数据,比如
int i = 5; System.out.println(i);
很明显这样做是没有任何问题的。如果打印对象会出现什么情况呢?
class Person{
private String name;
public Person(String name){
this.name = name;
}
public void info(){
System.out.println("此人的名字是:" + this.name);
}
}
public class PrintObject {
public static void main(String[] args) {
Person p = new Person("小三");
System.out.println(p);//打印对象
}
}
我的电脑上打印出来是这样的:
当使用 System.out.println 方法输出对象时,实际上是输出的Person实例的toString()方法也就是说下面两行代码的效果完全相同:
System.out.println(p);
System.out.println(p.toString());
toString()方法是Object类的一个实例方法,也就是说所有Java对象都具有toString方法,建议所有子类都重写toSting()方法。
toString()方法是对象的一个自我描述的方法,一般格式为:“类名+@+hashCode” ,重写toString()方法能够能清晰直观地提供对象的信息。
下面代码重写toString()方法:
1 class Person{
2 private String name;
3 public Person(String name){
4 this.name = name;
5 }
6
7 public void info(){
8 System.out.println("此人的名字是:" + this.name);
9 }
10
11 /**
12 * 重写toString()方法
13 */
14 @Override
15 public String toString() {
16 return "【姓名:" + name + "】";
17 }
18
19 }
20 public class PrintObject {
21 public static void main(String[] args) {
22 Person p = new Person("小三");
23 System.out.println(p);
24
25 }
26 }
输出信息为:
【姓名:小三】