不懂,难道就是为了输出对象的属性么?但是这里并没有创建Dog对象,何来的属性
反过来的话,假如没有toString(0方法,那我们所得到的一个对象,是完全不知道里面拥有什么样的值,只有电脑才知道,大大降低了可读性。Dog对象是有创建的,视频中所执行的是哪个Ini??那个类里面的main方法,那里就有Dog对象了。3-8视频有个点,就是。。。控制台输出太小有木有,导致上面还有一个父类构造方法的执行语句没看到,会让很多人看错的呀。
主要是根据需求来,当默认的toString()不能满足你对”文本方式表示此对象“时,重写toString(),例如bean类需要在重写的toString 方法中组织自己想要显示的当前对象的信息。
官方文档如下:
public String toString()
返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
返回:
该对象的字符串表示形式。
当你打印一个对象的时候,实际上是调用对象的toString()方法!
这是在类的定义阶段,属性还没有初始化,急什么。
Dog对象是有一个age属性的。
如果不重写toString()方法,当执行System.out.println(new Dog())时,输出Dog@15db9742类似这样的内容。
如果重写toString()方法,就会输出return后面的内容,显示内容更直观