当前位置: 技术问答>java相关
对象.toString() 问题
来源: 互联网 发布时间:2015-07-11
本文导语: 当调用: System.out.println(" object =" + object ); 时,对象自动调用了toString() . 对此, 很纳闷!! | 这是因为"+"运算符被重新定义的原故,如果第一表达式是String类型,才会有对象toSt...
当调用:
System.out.println(" object =" + object );
时,对象自动调用了toString() .
对此, 很纳闷!!
System.out.println(" object =" + object );
时,对象自动调用了toString() .
对此, 很纳闷!!
|
这是因为"+"运算符被重新定义的原故,如果第一表达式是String类型,才会有对象toString的方法调用.和System.out.println()无关
int i = 1;
String str1 = "One is " + i; //正确,i被转换成字符串
String str2 = i + "is one"; //错误,类型不匹配
String str3 = "" + i + "is one"; //正确
int i = 1;
String str1 = "One is " + i; //正确,i被转换成字符串
String str2 = i + "is one"; //错误,类型不匹配
String str3 = "" + i + "is one"; //正确
|
重载toString()目的:
Object提供的toString()方法返回的通常不是类的用户想看到的结果,它通常会返回类名+@+hashcode这样的形式的代码,(例如:想用System.out.println(aclass)显示一个类的内容是则会出现aa.aclass@1239482)所以为了使程序的可读性增加,因此重载toString()方法是一个比较好的编程习惯
Object提供的toString()方法返回的通常不是类的用户想看到的结果,它通常会返回类名+@+hashcode这样的形式的代码,(例如:想用System.out.println(aclass)显示一个类的内容是则会出现aa.aclass@1239482)所以为了使程序的可读性增加,因此重载toString()方法是一个比较好的编程习惯
|
java中所有的类都是从Object继承下来的,所以,他会自动调用Object类的toString()方法,除非你重载了该方法,这只是System.out.println()方法的一种处理方式
|
楼上说的没错,System.out.println(Object)会自动调用对象的.toString()方法的。一般都需要重载该方法。