JAVA 字符串的问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 08:08:40
代码如下:
package ch13;
import java.util.*;
public class UsingStringBuilder {
static Random rand=new Random(47);
public String toString(){
StringBuilder r=new StringBuilder("[");
for(int i=0;i<10;i++){
r.append(rand.nextInt(100));
r.append(",");
}
r.delete(r.length()-1,r.length());
r.append("]");
System.out.println(r.length());
return r.toString();
}
public static void main(String[] args){
UsingStringBuilder usb=new UsingStringBuilder();
System.out.println(usb);
}

}
问题是:我在mian方法中创建了一个类的对象usb,可是为什么打印usb就会出现我在toSting方法中的r呢?2者之见并没有联系啊?
输出如下:
29
[58,55,93,61,61,29,68,0,22,7]

usb作为一个对象object输出时,自动调动该对象的toString方法。你代码中重写了object的toString方法,所以打印时就会执行usb的toString方法。

什么意思,System.out.println(r.length()); 不是打印r的长度吗

两者之间是有联系的,楼主定义了个new UsingStringBulider usb,而UsingStringBulider的类里只有toString这个属性,所以打印usb就出现了上面出现的数字。这是正常的程序,并没错,不知道楼主想要实现什么功能