为了账号安全,请及时绑定邮箱和手机立即绑定

不调用方法打印

不调用方法打印

慕标琳琳 2021-08-19 19:14:19
这似乎是一个非常基本的问题,但我不明白为什么当我什至没有调用 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);}
查看完整描述

3 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

该 String.valueOf(Object)方法被隐式调用,看到文档println(Object x)

打印一个对象,然后终止该行。此方法首先调用 String.valueOf(x) 以获取打印对象的字符串值,然后其行为就像调用 print(String) 然后调用 println() 一样。

DOCString.valueOf(Object obj)

如果参数为空,则字符串等于“空”;否则,返回 obj.toString() 的值。


查看完整回答
反对 回复 2021-08-19
?
呼唤远方

TA贡献1856条经验 获得超11个赞

在这一行中,System.out.println(myCar)toSring方法在内部被调用,因为首先调用以获取打印对象的字符串值。使用if不是。println String.valueOf(myCar)valueOfmyCar.toString()myCarnull

所以完整的流程是这样的:

System.out.println(myCar) String.valueOf(myCar) > myCar.toString()


查看完整回答
反对 回复 2021-08-19
  • 3 回答
  • 0 关注
  • 200 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信