java:toString()方法

来源:百度知道 编辑:UC知道 时间:2024/06/28 15:55:38
String s1 = "hello";
StringBuffer s2 = new StringBuffer(s1);
s2.append(" world");
System.out.println(s2.toString());
System.out.println(s2);
最后两句都是输出hello world,toString()方法到底有什么作用?

为什么都输出hello world呢,楼主可以去看看println(Ojbect object)的方法他会自动调用被打印对象的toString方法,所以其实你的
System.out.println(s2.toString());
System.out.println(s2);
这两句是一样的,toString()方法是把对象转成String类型的,比如你不能把
s2赋值给s1

String s1="" ;
StringBuffer s2 = new StringBuffer("kkaskdfkdask");
s1=s2;是错误的
但是s1=s2.toString();是正确的
楼主这样应该可以知道两者间的区别了把

toString是Object类的方法,所有类都从Object类继承。如果你定义的类没有覆盖toString方法,则对象在调用toString方法时用的是Object类toString方法,返回的是“类名@hashcode".

System.out.println(obj)在参数是一个对象时,会首先调用该对象的toString方法。

而String类和StringBuffer类都覆盖了toString方法,都是返回字符串。

所以带不带toString效果是一样的。

toString方法大部分时候都是用来重写的,输出你想要的输出格式,java自带的方法就是一个打印封装,所以没有区别,如果你重写了这个方法,那么就会按照你写的toString方法输出你打印的内容

StringBuffer 线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。
比如insert()方法是在指定位置插入字符,appendix()方法是在末尾追加字符,
toString()方法返回此序列中数据的字符串表示形式。

上面那一个是:打印出S2 的,toString()方法,因为