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 要方便且有用得多。 |
相关文章推荐
- 《问题总结》JAVA什么时候要覆盖toString()、equals()、hashCode()方法??为什么要覆盖呢? 《通俗回答》
- java对象通用方法之覆盖equals时请遵守通用约定、覆盖equals时总要覆盖hashCode、始终要覆盖toString、考虑实现Comparable接口
- effective java(10) 之始终要覆盖toString
- Effective Java —— 始终要覆盖toString方法
- Java学习笔记9:始终要覆盖toString
- Effectice Java之始终覆盖toString(十)
- Java中覆盖toString()
- 8、java高级面向对象-重载、构造器重载、初始化块、this、super、对象构造和初始化分析、覆盖、toString
- java反射覆盖toString()方法
- 【protected权限】java浅复制、深复制中,为什么在派生类中覆盖基类的clone()方法,并声明为public
- 每个Java类都有的toString方法
- Java之重载与覆盖
- java 类与对象 5---toString()方法
- java方法重载和覆盖、子类与父类的转换
- 复习java基础------->继承关系中的方法覆盖和属性隐藏
- java 的哈希码以及Object.toString()简单理解
- 《thinking in java》笔记5-重写,覆盖,重载
- JAVA中方法和变量在继承中的覆盖和隐藏
- 自定义java toString方法
- java Arrays工具类的 一些功能(搜索,复制,比较相等,覆盖,排序)