Java 打印对象

Java 打印对象,java,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()); } } 当您将任何对象赋予print方法时,例如在代

以下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());
  }
}

当您将任何对象赋予print方法时,例如在代码中,它将调用toString方法

在您的示例中,ExampleTest类不会重写此toString方法,因此它将调用Object.toString:

因此,输出将是该类的全名,以及该类的哈希代码的结果

以下是政府对此的看法:

返回的字符串表示形式 对象一般来说,toString 方法返回一个 文本表示此对象。 结果应该是一个简洁但不复杂的过程 信息表示法,即 一个人容易阅读。它是 建议所有子类 重写此方法

类对象的toString方法 返回由 对象所属的类的名称 是一个实例,at符号字符 `@,以及无符号十六进制 的哈希代码的表示形式 对象换句话说,这种方法 返回一个等于该值的字符串 其中:


当您将任何对象赋予print方法时,例如在代码中,它将调用toString方法

在您的示例中,ExampleTest类不会重写此toString方法,因此它将调用Object.toString:

因此,输出将是该类的全名,以及该类的哈希代码的结果

以下是政府对此的看法:

返回的字符串表示形式 对象一般来说,toString 方法返回一个 文本表示此对象。 结果应该是一个简洁但不复杂的过程 信息表示法,即 一个人容易阅读。它是 建议所有子类 重写此方法

类对象的toString方法 返回由 对象所属的类的名称 是一个实例,at符号字符 `@,以及无符号十六进制 的哈希代码的表示形式 对象换句话说,这种方法 返回一个等于该值的字符串 其中:


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

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

您试过运行它吗?或者你的问题是它为什么打印出它打印出的东西?你试过运行它吗?或者你的问题是为什么它打印出它打印出的东西?不,这就是对象的功能。正如Java中的每个其他类扩展对象一样,每个其他类都将执行相同的操作,除非它重写了它的toString方法。例如,如果您打印出一个整数,您将不会得到@符号,后面是散列,而是您所期望的:整数中包含的数字。最好看看@romaintaz的答案。@baba:你在OP的ExampleTest类中看到过一个超链接吗?不,这就是Object的功能。正如Java中的每个其他类扩展对象一样,每个其他类都将执行相同的操作,除非它重写了它的toString方法。例如,如果您打印出一个整数,您将不会得到@符号,后面是散列,而是您所期望的:整数中包含的数字。最好看看@romaintaz的答案。@baba:你在OP的ExampleTest类中看到过一个过度的toString吗?
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
getClass().getName() + '@' + Integer.toHexString(hashCode())