猿问

不调用方法打印

这似乎是一个非常基本的问题,但我不明白为什么当我什至没有调用 toString 方法时会在屏幕上打印它,我只是实例化了一个 Car 对象。谢谢


public class Car {


    public void m1() { 


       System.out.println("car 1"); 


    }


    public void m2() { 


       System.out.println("car 2"); 


    }


    public String toString() { 


       return "vroom"; 


    }


 }





public static void main(String[] args) {


    Car myCar = new Car();


    System.out.println(myCar);


}


慕标琳琳
浏览 201回答 3
3回答

牧羊人nacy

该 String.valueOf(Object)方法被隐式调用,看到文档的println(Object x):打印一个对象,然后终止该行。此方法首先调用 String.valueOf(x) 以获取打印对象的字符串值,然后其行为就像调用 print(String) 然后调用 println() 一样。和DOC的String.valueOf(Object obj):如果参数为空,则字符串等于“空”;否则,返回 obj.toString() 的值。

呼唤远方

在这一行中,System.out.println(myCar)该toSring方法在内部被调用,因为首先调用以获取打印对象的字符串值。使用if不是。println String.valueOf(myCar)valueOfmyCar.toString()myCarnull所以完整的流程是这样的:System.out.println(myCar) > String.valueOf(myCar) > myCar.toString()
随时随地看视频慕课网APP

相关分类

Java
我要回答