Java中的toString方法

Java中的toString方法在Object中已经存在。由于Java中所有的类都继承自Object类,所以此方法存在于所有对象中,其作用是为了方便所有类的字符串操作。在Java的API文档中指出“建议所有子类都重写此方法”。

对该方法的使用进行如下验证:

 

class TestA {
public String toString() {
return "A feedback from TestA.";
}
}

class TestB {
public String getString() {
return "A feedback from TestB.";
}
}

class TestC {
public String getString() {
return "A feedback from TestC.";
}
}

class TestD{}

public class SimpleTest {
public static void main(String[] args) {
TestA ta
= new TestA();
TestB tb
= new TestB();
TestC tc
= new TestC();
TestD td
= new TestD();
System.out.println(
"From TestA: " + ta);
System.out.println(
"From TestB: " + tb);
System.out.println(
"From TestC: " + tc.getString());
System.out.println(
"From TestD: " + td);
}

}


此程序段的输出如下:

 

From TestA: A feedback from TestA.
From TestB: TestB@14318bb
From TestC: A feedback from TestC.
From TestD: TestD@ca0b6

 

其中TestA类重写了toString方法,返回字符串,因此可在println中直接输出。TestB和TestC类尝试用另一种方法名重新设置相同的功能,而事实上没有对toString方法进行重写,因此在对TestB的输出中仍然调用原来继承的toString方法,输出“类名+at标记符@+此对象哈希码的无符号十六进制表示”;而在TestC中调用了getString方法,返回自定义的字符串。TestD类中未对toString做任何操作,在主函数中调用时与TestB相同,使用的继承的toString方法,输出与TestB类似。

posted @ 2010-09-17 08:32  Argol  阅读(507)  评论(0)    收藏  举报