黑马程序员技术交流社区
标题:
关于String打印的问题
[打印本页]
作者:
李龙龙
时间:
2011-11-2 08:10
标题:
关于String打印的问题
class Demo
{
public static void main(String[] args)
{
//System.out.println("Hello World!");
Student stu =new Student("lisi");
System.out.println(stu);
}
}
class Student
{
private String name;
Student(String name)
{
this.name=name;
}
public String getName()
{
return name;
}
public String toString()
{
return "name="+name;
}
}
上面小程序,打印的结果是 name=lisi ,
当注释了public String toString()
{
return "name="+name;
}
打印结果Student@1fb8ee3,问一下打印String时,是否自动调用toString()方法,能说一下原理吗?谢谢
作者:
庄承荣
时间:
2011-11-2 08:24
在Java中,打印一个对象会默认调用toString()方法,Object 类的 toString 方法返回一个字符串,如没有对toString()方法进行重写,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
作者:
吉许
时间:
2011-11-2 08:54
toString
public String toString()返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
上面是API中Object给出的说明.
由于Object是上帝,所有类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。
自定义的类一定要覆盖该方法.
作者:
李龙龙
时间:
2011-11-2 10:59
谢谢,各位
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2