【问题标题】:why can't I print an object of my own class to the console in Java [duplicate]为什么我不能用 Java 将我自己的类的对象打印到控制台 [重复]
【发布时间】:2018-02-05 17:25:32
【问题描述】:

我创建了自己的名为 Property 的类,并对其进行了实例化。现在我正在尝试将它的一个实例打印到控制台,但打印出来的是显示以下消息:

这是我的代码:

package playground;

public class PlayGround{
   public static void main(String[] args) {
      Property a = new Property("house",120.2,1989);
      System.out.println(a);  
   } 
}

package playground;

public class Property {
   private String type;
   private double area;
   private int year;
   public Property(String type, double area, int year){
      this.type=type;
      this.area=area;
      this.year=year;
   } 
}

【问题讨论】:

  • 用你的类的 String 表示覆盖 toString 方法。
  • 你的意思是我必须在我的类中创建一个名为 toString() 的方法吗?
  • 是的,但是您应该从此处查看已链接到的问题。他们会为您提供所需的上下文和答案。

标签: java


【解决方案1】:

当您使用System.out.println() 方法时,它会调用对象的toString() 方法。由于您没有覆盖 Object 类的默认 toString 方法,因此它调用了 Object 类的默认 toString 方法。可以从here看到Object的toString方法

Object 类的 toString 方法返回一个字符串,该字符串由 对象是其实例的类的名称,at 符号 字符“@”和哈希的无符号十六进制表示 对象的代码。换句话说,这个方法返回一个字符串等于 值:

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

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
猜你喜欢
  • 2020-06-05
  • 2011-11-22
  • 1970-01-01
  • 2022-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-07
相关资源
最近更新 更多