黑马程序员技术交流社区

标题: 覆盖toString()方法的意义是什么? [打印本页]

作者: ccyznhy    时间: 2013-8-22 22:57
标题: 覆盖toString()方法的意义是什么?
本帖最后由 forward 于 2013-8-24 21:31 编辑

一直不太明白,求解决啊啊啊啊啊啊啊啊啊啊啊啊

作者: gulup    时间: 2013-8-22 23:13
楼主你现在是明显的刷分嫌疑啊。
不过我还是回答一下。
toString默认是返回由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成的字符串。覆盖了之后,重写方法的实现,就可以实现你想要返回的字符串。
从而实现你想要的输出效果等等

作者: 一个铃,一颗珠    时间: 2013-8-22 23:20
一般toString()方法会应用在自己bean类中。根据需要 在重写的toString 方法中 组织自己想要显示的当前对象的信息。

比如按一定规则格式返回 所以属性的名称及值。
作者: 老衲玩IT    时间: 2013-8-22 23:26
覆盖toString()方法以String的形式返回你想输出的对象内部信息,在你直接打印对象名或出String类的对象相+时会自动调用toString方法生成对象的信息。
作者: 王延龙    时间: 2013-8-23 02:30
首先,在Java中有一个上帝Object类,是所有类的父类,神一样的存在。以此对神所拥有的方法我们都必须很重视。toString方法就是其中之一;
每一个类都有一个tostring方法,你愿意或者不愿意它就在那里不来不去。
如果不加以覆盖,调用一个对象的toString方法会返回一个描述该对象的字符串,默认情况下返回一个由该对象所属的类名,at符号@、以及该对象十六进制形式的内存地址组成的字符串。一般这个字符串的信息量,作用不是很大,我们通常覆盖toString方法为了代表该对象的描述性字符串信息。

我的信条:倚马千言不若代码一行,有代码有真相;
  1. /**
  2. * 演示实例:覆写toString方法
  3. * 结果表明:通过覆写toString方法可以获得一个自定义的描述该对象的信息。
  4. * 试想一下,当你的类中覆写了一个toString方法,别人通过对象调用这个方法就会知道,你这个对象的有用信息,而不是一个含义@字符16进制字符串。
  5. */
  6. public class DemoToString {

  7.         public static void main(String[] args) {

  8.                 Circle circle = new Circle();
  9.                 Dog dog = new Dog();
  10.                
  11.                 System.out.println(circle.toString());//显示结果:这是一个圆,它的半径是1.0
  12.                 System.out.println(dog.toString());//显示结果:Dog@17e4ca
  13.         }
  14. }

  15. //定义一个圆类,其中覆写了toString方法
  16. class Circle{
  17.        
  18.         double radius;
  19.        
  20.         Circle(){
  21.                
  22.                 radius = 1.0;
  23.         }
  24.        
  25.         public String toString(){
  26.                
  27.                 return "这是一个圆,它的半径是"+radius;
  28.         }
  29. }

  30. //定义狗类,其中没有覆写toString方法
  31. class Dog{
  32.        
  33.         String color = "yellow";
  34.        
  35.         public String eat(){
  36.                
  37.                 return "它要吃骨头";
  38.         }
  39. }
复制代码

作者: 王延龙    时间: 2013-8-23 02:32
gulup 发表于 2013-8-22 23:13
楼主你现在是明显的刷分嫌疑啊。
不过我还是回答一下。
toString默认是返回由类名(对象是该类的一个实例) ...

哥们,你也可以这么想,楼主也是在给你一个刷分的机会啊。就当是复习知识点了嘛。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2