Object toString方法

1、System.out.println()里的参数会自动调用toString方法。
package com.mydemo.controller;
// 1.getClass().getName() + '@' + Integer.toHexString(hashCode())

public class TestToString {
    public static void main(String[] args) {
        Dog dog = new Dog();
        // 3.下面这三个方法都调用了dog 类的toString方法
        System.out.println(dog);
        System.out.println("dog:" + dog);
        System.out.println("dog:" + dog.toString());
    }
}
// 2.这个类继承了Object 类
class Dog {
    // 还可以重写Object的toString方法
    /*public String toString() {
        return "I am cool dog";
    }*/
}
View Code
com.mydemo.controller.Dog@2a139a55
dog:com.mydemo.controller.Dog@2a139a55
dog:com.mydemo.controller.Dog@2a139a55
运行结果

  但System.out.println(k)这个写法是错误的,通不过编译。因为k 在这时即不是字符,也不是字符串,也不Object 类的一个对象 。字符要用单引号,字符串要用双引号。

2、这里也会自动调用TestToString类的toString方法。

public class TestToString {
    public static void main(String[] args) {
        String str = "" + new TestToString();
        System.out.println(str);
    }
}
//运行结果:TestToString@6e00321
原文地址:https://www.cnblogs.com/Mike_Chang/p/7067565.html