Java toString() 方法详解及示例

2025 年 3 月 31 日 | 阅读 3 分钟

如果您想将任何对象表示为字符串,就会用到 toString() 方法

toString() 方法返回对象的字符串表示形式。

如果您打印任何对象,Java 编译器内部会在该对象上调用 toString() 方法。因此,通过覆盖 toString() 方法,可以根据您的实现返回所需输出,它可以是对象的状态等。

Java toString() 方法的优势

通过覆盖 Object 类的 toString() 方法,我们可以返回对象的值,这样就不需要编写太多代码了。

不使用 toString() 方法理解问题

让我们看一个打印引用的简单代码。

Student.java

输出

Student@1fee6fc
Student@1eed786

如您在上面的示例中所见,打印 s1 和 s2 会打印对象的哈希码值,但我希望打印这些对象的值。由于 Java 编译器内部调用 toString() 方法,因此覆盖此方法将返回指定的值。让我们通过下面的示例来理解它

Java toString() 方法示例

让我们看一个 toString() 方法的示例。

Student.java

输出

101 Raj lucknow
102 Vijay ghaziabad

在上面的程序中,Java 编译器内部会调用 toString() 方法,覆盖此方法将返回 Student 类 s1 和 s2 对象的指定值。


Java toString() 方法选择题

1. Object 类中 toString() 方法的默认行为是什么?

  1. 返回对象的状态
  2. 返回对象的类名和哈希码
  3. 返回 null
  4. 返回对象的内存地址
 

答案:B)

解释:Object 类中的默认 toString() 方法返回一个字符串,该字符串由类名后跟“@”字符和对象的哈希码组成。


2. 哪个类应该覆盖 toString() 方法以提供有意义的字符串表示?

  1. 任何需要自定义字符串表示的类
  2. 仅实用工具类
  3. 仅数据类
  4. 仅服务类
 

答案:A)

解释:任何需要有意义字符串表示的类都应该覆盖 toString() 方法。


3. 在自定义 toString() 方法中生成对象字符串表示的推荐方法是什么?

  1. 使用手动字符串连接
  2. 使用 String.format() 或 StringBuilder 以获得更好的性能
  3. 使用默认实现
  4. 避免覆盖该方法
 

答案:B)

解释:建议在生成对象字符串表示时使用 String.format() 或 StringBuilder 以提高性能和可读性。


4. 如果在子类中未覆盖 toString() 方法,其输出将是什么?

  1. 类名和哈希码
  2. Null
  3. 对象的 state
  4. 对象的内存地址
 

答案:A)

解释:如果未覆盖 toString() 方法,它将返回类名后跟对象的哈希码。


5. 定义 toString() 方法的 Object 类位于哪个包中?

  1. java.lang
  2. java.util
  3. java.io
  4. java.net
 

答案:A)

解释:Object 类位于 java.lang 包中。