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"; }*/ }
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