该toString()方法用于String通过使用对象的内容来创建对象的表示形式。编写类时,应重写此方法。toString()当将一个对象连接到一个字符串中时,隐式调用"hello " + anObject。
考虑以下:
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" } }
在类中,这里toString()from Objectclass被覆盖,User以在打印对象时提供有关该对象的有意义的数据。
使用时println(),将toString()隐式调用对象的方法。因此,这些语句执行相同的操作:
System.out.println(user); // toString()在`user`上隐式调用 System.out.println(user.toString());
如果在toString()上述User类中未覆盖,则可能返回或类似的String,除了类名外几乎没有有用的信息。这是因为该调用将使用基本Java类的实现,该类对类的结构或业务规则一无所知。如果要在类中更改此功能,只需重写该方法。System.out.println(user)User@659e0bfdtoString()ObjectUser