【Java】为什么toString方法在打印对象时会自动调用?

我是看了这篇博客有很大收获,附上链接:https://blog.csdn.net/qq_41288095/article/details/89847007

鉴于这篇博客关于为什么会自动调用toString已经说了很清楚了,

我就大概说一下为什么输出的结果是“I love java”吧,我还想了有一会儿哈哈哈。

代码我稍微改一下,本质意思还是没变的,这样比较容易理解。

public class ToStringTest {
    public static void main(String args[]){

        ToStringTest a = new ToStringTest();

        String str = "love" + a;  //执行到这一步要把a转换为String类型,所以就会调用a的toString方法了;

                                             //先执行System.out.print("I ");(只不过这时候还看不到),然后返回“java”,所以str的值就是“love java”

                                             //最后控制台我们能看到输出的是“I love java”.
        System.out.println(str);
       
    }
    public String toString(){
        System.out.print("I ");
        return "java ";
    }
}

 

博主也正在学习中,如果有错误或疑问欢迎评论私信交流讨论!^_^


版权声明:本文为CCChloe原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。