toString()
因为
1、toString()方法时Object类里的一个实例方法;
2、所有的Java类都是Object类的子类。
所以
1、所有Java对象都具有toString()方法。
2、所有的Java对象都可以和字符串进行连接运算。
toString()的“自我描述”功能
toString()是一个非常特殊的方法,它是一个“自我描述”方法。
该方法通常用于实现这样一个功能:当程序员直接打印该对象时,系统将会输出该对象的“自我描述”信息,用以告诉外界该对象所有的状态信息。
Object类提供的toString()方法总是返回该对象实现类的“类名+@+hashCode”值,这个返回值不能真正实现“自我描述”的功能,因此如果用户需要自定义类实现“自我描述”的功能,就必须重写Object类的toString()方法。
图示流程如下:
重写的toString()方法中,返回值通常的格式为:
return “Appple[color=” + color + “,weight=” + weight + “]”;
附录-代码
上图中的代码如下:
类代码:
public class Apple {
private String color;
private double weight;
public Apple(String color,double weight){
this.color = color;
this.weight = weight;
}
//省略color、weight的setter和getter方法
//...
// 重写toString()方法,用于实现Apple对象的“自我描述”
public String toString(){
return "一个苹果,颜色是:" + color + ",重量是: " + weight;
}
}
主函数代码:
public class ToStringTest {
public static void main(String[] args) {
Apple a = new Apple("红色",5.68);
// 打印Apple对象
System.out.println(a);
//一个苹果,颜色是:红色,重量是: 5.68
}
}
输出结果为:
D:\0software\jdk11\bin\java.exe "-javaagent:D:\0software\idea\IntelliJ IDEA 2018.2.2\lib\idea_rt.jar=51391:D:\0software\idea\IntelliJ IDEA 2018.2.2\bin" -Dfile.encoding=UTF-8 -classpath F:\IdeaProjects\out\production\Zcaogao-code CaoGao.ToStringTest
Appple[color=红色,weight=5.68]
Process finished with exit code 0
注意:
我使用的是JDK11