简介
toString
方法是万类之基Object类中的一个方法,是Java给我们提供的一种更加有效快捷方法来打印类中属性的方法。由于Java中所有的类都继承自Object类,所以每个类都可以通过重写Object中的toString
方法,来设置该类对象在转换为String类型后的String值,而非所在类中的其他类对象(比如,在A类重写了toString
,只有A类对象在转为String时按此方法,而非在A类中用到的其他类对象在转为String时按此方法。)。比如,一个类中有name、age两个属性,重写的toString方法中是返回的name属性,则该类对象在转为String类型时会变为一个值为name属性的字符串。
通常情况下,toString返回的String串是代表这该类对象(自认是“可唯一表示”之意)。JDK文档中建议建议所有子类都重写此方法。同一类的同一个对象在不同时间、不同JVM上使用toString输出的String串可能不同。
Object类中的toString方法返回一个由【调用toString方法的对象所属的类名(类名以所在package的包名.类名
输出,如下节的使用方法中的示例所示)】、符号字符@(JDK文档原文是【the at-sign character ‘@’ 】)、【该对象的hash code的无符号十六进制形式】三者共同组成的String串。更具体地说,这个方法默认会返回的值的形式是getClass().getName() + '@' + Integer.toHexString(hashCode())
。
自认,重写一个类中的toString方法就是在定义【该类对象在转为String类型时的取值问题】。
使用方法
package ljh;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Test test = new Test();
System.out.print(test);//此时输出的结果是“ljh.Test@6f2b958e”
}
@Override
public String toString() {
// TODO Auto-generated method stub
return super.toString();
}
}
package ljh;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Test test = new Test();
System.out.print(test);//此时输出的结果是“通过toString方式overwrite本类对象在转换为String类型时输出的值”
}
//修改toString方法中的返回值
@Override
public String toString() {
// TODO Auto-generated method stub
return "通过toString方式overwrite本类对象在转换为String类型时输出的值";
}
}