问答详情
源自:9-8 Java 中的 Object 类 Ⅰ

toString()方法重写的意义是什么?

不懂,难道就是为了输出对象的属性么?但是这里并没有创建Dog对象,何来的属性

提问者:sersad 2014-12-30 15:16

个回答

  • 我说红豆你说哟
    2016-08-24 17:26:44
    已采纳

    反过来的话,假如没有toString(0方法,那我们所得到的一个对象,是完全不知道里面拥有什么样的值,只有电脑才知道,大大降低了可读性。Dog对象是有创建的,视频中所执行的是哪个Ini??那个类里面的main方法,那里就有Dog对象了。3-8视频有个点,就是。。。控制台输出太小有木有,导致上面还有一个父类构造方法的执行语句没看到,会让很多人看错的呀。http://img.mukewang.com/57bd681100011ca511430220.jpg

  • 苦苦寻宝人
    2016-03-31 09:44:52

    主要是根据需求来,当默认的toString()不能满足你对”文本方式表示此对象“时,重写toString(),例如bean类需要在重写的toString 方法中组织自己想要显示的当前对象的信息。

    官方文档如下:

    public String toString()

    返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。

    Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:

    getClass().getName() + '@' + Integer.toHexString(hashCode())


    返回:

    该对象的字符串表示形式。

  • 仗剑闯江湖
    2014-12-30 20:07:14

    当你打印一个对象的时候,实际上是调用对象的toString()方法!

    这是在类的定义阶段,属性还没有初始化,急什么。

  • 好帮手慕珊
    2014-12-30 18:40:50

    Dog对象是有一个age属性的。

    如果不重写toString()方法,当执行System.out.println(new Dog())时,输出Dog@15db9742类似这样的内容。

    如果重写toString()方法,就会输出return后面的内容,显示内容更直观