📜  Java中 toString() 方法的修饰符和示例(1)

📅  最后修改于: 2023-12-03 15:01:49.624000             🧑  作者: Mango

Java中 toString() 方法的修饰符和示例

在Java中,每个对象都有toString()方法。在默认情况下,toString()方法返回一个字符串,包含对象的类名和一个哈希码的无符号十六进制表示。

但是,在实际开发中,我们可能需要在toString()方法中返回更丰富的信息,以便更好地理解和调试代码。本文将介绍如何修改toString()方法的修饰符,并提供一些示例说明如何编写实用的toString()方法。

修饰符

toString()方法的修饰符通常是public,因为它是一个公共方法,可以从任何地方访问。如果你不想让继承该类的子类覆盖toString()方法,则可以使用final关键字。

下面是一个public final的toString()方法示例:

public final String toString() {
    return "Person [name=" + name + ", age=" + age + ", address=" + address + "]";
}
示例

下面是一些例子,说明如何编写更实用的toString()方法。

示例1:覆盖默认实现

默认实现返回对象的哈希码,但这并不是通常需要的数据。下面是一个更有用的toString()方法示例:

public String toString() {
    return "Person [name=" + name + ", age=" + age + ", address=" + address + "]";
}
示例2:打印数组

数组对象默认的toString()方法返回一个字符串,格式为类名+哈希码。但是,我们可能需要打印数组中的所有元素,如下所示:

public String toString() {
    return Arrays.toString(values);
}
示例3:打印嵌套对象

假设我们有一个Order对象,它有一个Customer对象和多个OrderItem对象。我们希望在toString()方法中打印这个Order对象及其所包含的所有对象,如下所示:

public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("Order [id=" + id);
    sb.append(", customer=" + customer);
    sb.append(", orderItems=[");
    for (OrderItem item : orderItems) {
        sb.append(item + ", ");
    }
    sb.delete(sb.length() - 2, sb.length());
    sb.append("]]");
    return sb.toString();
}
结论

toString()方法是一个非常有用的工具,可以帮助开发人员快速调试代码。 通过覆盖默认实现,并打印更有用的信息,可以减少调试时间并提高代码质量。