Java对象toString()方法

Java对象toString()方法

对象的字符串表示以可读格式包含有关对象状态的信息。
Object类的toString()方法表示字符串中类的对象。Object类提供了toString()方法的默认实现。 它返回一个以下格式的字符串:

<fully qualified class name>@<hash code of object in hexadecimal>

示例

考虑下面的代码及其输出。如是亲自执行代码可能会得到不同的输出。

public class Main{
  public static void main(String[] argv){
    Object obj  = new Object();
    String objStr = obj.toString();
    System.out.println(objStr);
  }
}

上面的代码生成以下结果。

java.lang.Object@2a139a55

实例

以下代码显示了如何创建自己的toString方法。

public class Main{
  public static void main(String[] argv){
    MyClass obj  = new MyClass(123);
    String objStr = obj.toString();
    System.out.println(objStr);
  }
}
class MyClass {
  private int value;

  public MyClass(int value) {
    this.value = value;
  }

  public void setValue(int value) {
    this.value = value;
  }

  public int getValue() {
    return value;
  }

  /* override toString() method of the Object class */
  public String toString() {
    // Return the stored value as a string
    String str = String.valueOf(this.value);
    return str;
  }
}

上面的代码生成以下结果。

123

注:需要确保它被声明为public,它的返回类型是String,并且它不接受任何参数。

类的toString()方法非常重要。 当需要对象的字符串表示时,Java会自动调用toString()方法。

有两种情况值得一提:

  • 当连接一个字符串和一个对象时,实例调用的就是toString()方法。

    String str = "Hello" + new Point(10, 20);
    

    Java在Point对象上调用toString()方法,并将返回的值并连接“Hello”字符串。上述语句与以下语句相同:

    String str = "Hello" + new Point(10, 20).toString();