为什么print和println时候toString 方法会自动被调用

为什么toString 方法会自动被调用 

源码 

Sting.valueOf

public static String valueOf(Object obj) {
    return (obj == null) ? "null" : obj.toString();
}

/**

参数: obj - 一个 Object。 返回: 如果参数为 null, 则字符串等于 "null";否则, 返回 obj.toString() 的 值 



 这个问题其实比较简单的,大家可以直接看 Java 中相关类的源代码就可以知道了。 
 现在的问题是,当用户调用 print 或 println 方法打印一个对象时,为什么会打印 出对象的 toString()方法的返回信息。
  public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } 
  1.这个是 Ojbect 中的 toString()方法,toString 会打印出 return 信息。 
public void println(Object x){ 
  String s = String.valueOf(x); 
     synchronized (this) 
      { 

      print(s); 

      newLine();

      } 



   public void print(Object obj) { 
    write(String.valueOf(obj));

  } 



   2.这两个方法是 System.out.print 和 println()方法传入一个 Object 类对象时打印 的内容,当然,传入其它类时,同样如此。 
   3.我们看到,在 2 中,当要打印一个对象时,会自动调用 String.valueOf()这个 方法,
   下面是这个方法的代码: 
   public static String valueOf(Object obj) { return (obj == null) ? "null" : obj.toString(); } 这个方法中,当传入的对象为 null 时返回一个 null,当非 null 时,则返回这个 obj 的 toString()。 
   所以, 这就是当我们调用 print 或者 println 打印一个对象时,它会打印出这个 对象的 toString()的最终根源。
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值