您的位置:首页 > 编程语言 > Java开发

Java中覆盖toString()

2011-07-14 19:23 246 查看
覆盖 toString()
Object
类具有一个
toString()
方法,您创建的每个类都会继承该方法。它返回您的对象的一个
String
表示,并且对于调试非常有帮助。为了来看
toString()
的默认实现做些什么,请在
main()
中尝试这一体验:
public static void main(String[] args) {
Adult myAdult = new Adult();

myAdult.addMoney(1);
myAdult.addmoney(5);

System.out.println(myAdult);
}
[/code]我们将会在控制台中得到的结果看起来像下面这样:
intro.core.Adult@b108475c
[/code]
println()
方法在传递给它的对象上调用
toString()
。因为还没有覆盖
toString()
,所以得到默认的输出,即一个对象 ID。每个对象都有一个 ID,但是这并没有告诉您关于对象的太多信息。如果我们覆盖了
toString()
,以便给我们提供关于
Adult
的信息的一个格式良好的形象描述,那么将会更好一些:
public String toString() {
StringBuffer buffer = new StringBuffer();

buffer.append("And Adult with: " + "\n");
buffer.append("Age: " + age + "\n");
buffer.append("Name: " + getName() + "\n");
buffer.append("Race: " + getRace() + "\n");
buffer.append("Gender: " + getGender() + "\n");
buffer.append("Progress: " + getProgress() + "\n");
buffer.append("Wallet: " + getWallet());

return buffer.toString();
}
[/code]创建一个
StringBuffer
以构建对象的一个
String
表示,然后返回该
String
。当重新运行时,控制台应该显示一些像下面这样的好的输出:
An Adult with:
Age: 25
Name: firstname lastname
Race: inuit
Gender: male
Progress: 0
Wallet: [1, 5]
[/code]这比一个隐含的对象 ID 要方便且有用得多。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: