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 類的結構或業務規則一無所知。如果要在類中更改此功能,只需覆蓋該方法即可。