//我一直试图理解字符串如何工作以及它的主要功能是什么,但我遇到了麻烦。喜欢以下examaple。 toString方法究竟做了什么?
public class Item {
private String name;
private int price;
private int qty;
public Item() {
}
public Item(String n, int p, int q){
this.name=n;
this.price=p;
this.qty=q;
}
public String getName() {
return name;
}
public int getPrice() {
return price;
}
public int getQty() {
return qty;
}
public String toString() {
return name +": $" + price+":" + qty;
}
答案 0 :(得分:7)
API中明确记录了toString的目的:
返回对象的字符串表示形式。一般来说, toString方法返回一个“文本表示”的字符串 宾语。结果应该是简洁但信息丰富的表示 一个人很容易阅读。建议所有人 子类重写此方法。
Object#toString() will produce:
Object类的toString方法返回一个由。组成的字符串 对象是实例的类的名称,at-sign 字符“@”,以及散列的无符号十六进制表示 对象的代码。换句话说,此方法返回一个相等的字符串 价值:
getClass().getName() + '@' + Integer.toHexString(hashCode())
如果在类中调用toString,则调用默认的Object#toString()将替换为类#toString()。在当前代码中如果尝试打印Item实例,则输出格式为:
name +": $" + price+":" + qty;
答案 1 :(得分:1)
toString
通常是对象的用户友好/可读字符串表示。您可以将其用于调试,记录或向最终用户/客户端显示信息。
这是一个简短的tutorial,讨论如何以及何时使用toString。
答案 2 :(得分:0)
toString是每当java需要类的对象的字符串表示时调用的函数。例如,如果您调用System.out.println(a);
,其中a的类型为Item
,则会显示toString
返回的值。此方法是Object
的一部分,因此每个java对象都有一些默认的实现。在许多情况下,它仍然没有足够的信息,最好覆盖它。
答案 3 :(得分:0)
toString
提供String
Object
代表
public class Person {
private String firstName;
private String lastName;
private Person(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public String getName() {
return this.firstName + " " + this.lastName;
}
public String toString() {
return this.firstName + " " + this.lastName;
}
}
想象一下这个课程以及以下几个电话:
System.out.println(aPerson.getName());
我们的toString
方法意味着我们可以做到:
System.out.println(aPerson);
答案 4 :(得分:0)
我想将toString()
视为一种便利功能。每当你做类似的事情时:
MyObject m = ...//
System.err.println(m);
println(m)
实际上正在调用m.toString()
来获取对象的人类可读表示。它是每个Object
固有的,因此您始终可以覆盖它以使其返回最能描述您自己的对象的String。