Java中的toString方法

public class helloWorld2 {
public static void main(String[] args) {
System.out.println(new Soap());
}
}

class Soap {
private String s;

Soap() {
s = new String("Constructed");
}

public String toString() {
return s;
}
}
/*
* output
* Constructed
*/

System.out是一个PrintStream对象,print(println同理)方法有N个重载,其中一个是print(Objcet obj)。

源码如下:

  public void print(Object paramObject)
{
write(String.valueOf(paramObject));
}

在打印的对象为object的时候,程序调用String.valueOf

  public static String valueOf(Object paramObject)
{
return paramObject == null ? "null" : paramObject.toString();
}

程序调用的是Object的toString方法进行输出。

所以,在开始的例子中,会调用Soap重写的toString方法进行打印。

以上是对Object进行分析,那String,char之类的呢?

当为String的时候,就直接write(String)输出。当为int,long之类是调用String.valueOf()。

为char时,比较特殊。


posted on 2012-02-03 14:22  寻找南方  阅读(210)  评论(0编辑  收藏  举报

导航