您的位置:首页 > 编程语言 > Java开发

Java笔记1 - System.out.println(this)

2017-11-24 01:07 477 查看
    在Java中,所有的对象都是继承自Object,自然继承了 toString 方法,在当使用 System.out.println()
方法,里面为一个对象的引用时,自动调用 toString 方法将对象打印出来,而如果重写了 tostring 方法则调用重写的toString方法。

    因为 System.out.println() 的这个方法源码中调用了 String.valueOf(Objec
o)

public void println(Object x) {
String s = String.valueOf(x);
synchronized(this) {
print(s);
newLine();
}
}


  而 String.valueOf(x) 的源码就是去调用该对象的 toString() 方法,源码如下:
public static String valueOf(Object obj) {
return (obj ==null) ? "null" : obj.toString();
}

 对于 System.out.println(this)

this是这个类的引用,
 比如说

class A{
public void run(){
System.out.println(this);
}

public String toString() {
return "hello";
}
}

 那么 System.out.println(this) 将打印A类自身引用的toString方法,如列,打印hello;
  如果自身没有实现,则打印的是父类Object的toString方法;getClass().getName()
+ "@" +Integer.toHexString(hashCode());  打印的是“类名@hascode”

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java