打印一个对象

时间:2011-02-25 07:54:21

标签: java

以下代码中打印的以下System.out是什么?

class ExampleTest  {}
public class Test {
  public static void main(String ... strings){
    ExampleTest et=new ExampleTest();
    System.out.println(et);
    System.out.println(new ExampleTest());
  }
}

2 个答案:

答案 0 :(得分:4)

当您将任何对象提供给打印方法时(例如代码中),它将调用toString()方法。

在您的示例中,您的ExampleTest课程未覆盖此toString()方法,因此会调用Object.toString()

public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

因此输出将是类的全名,以及此类的hashCode的结果。

以下是Javadoc of java.lang.Object.toString()对此的说法:

  

返回的字符串表示形式   宾语。一般来说,toString   method返回一个字符串   “文字表示”这个对象。   结果应该是简洁但是   信息表示即   一个人容易阅读。它是   建议所有子类   覆盖此方法。

     

类Object的toString方法   返回由。组成的字符串   对象的类的名称   是一个实例,即符号字符   `@'和无符号十六进制   表示哈希码的   宾语。换句话说,这种方法   返回一个等于该值的字符串   的:

getClass().getName() + '@' + Integer.toHexString(hashCode())

答案 1 :(得分:1)

它打印类名后跟@符号,后跟对象哈希码的无符号十六进制表示。