toString() 方法

toString() 方法用于通过使用对象的内容来创建对象的 String 表示。编写类时应该重写此方法。当 "hello " + anObject 中的对象连接到字符串时,会隐式调用 toString()

考虑以下:

public class User {
    private String firstName;
    private String lastName;
    
    public User(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }
    
    @Override
    public String toString() {
        return firstName + " " + lastName;
    }
    
    public static void main(String[] args) {
        User user = new User("John", "Doe");
        System.out.println(user.toString()); // Prints "John Doe"
    }   
}

来自 Object 类的 toString()User 类中被覆盖,以在打印时提供有关对象的有意义的数据。

使用 println() 时,隐式调用对象的 toString() 方法。因此,这些陈述做同样的事情:

System.out.println(user); // toString() is implicitly called on `user`
System.out.println(user.toString());

如果在上面提到的 User 类中没有覆盖 toString()System.out.println(user) 可能会返回 User@659e0bfd 或类似的 String,除了类名之外几乎没有任何有用的信息。这将是因为调用将使用基本 Java Object 类的 toString() 实现,该类对 User 类的结构或业务规则一无所知。如果要在类中更改此功能,只需覆盖该方法即可。