如何在Java中正确覆盖toString()?
我需要toString()
方法方面的帮助,这非常令人讨厌。我尝试在线查找,因为那toString
是一个正在搞砸的地方,即使在那里,它也“找不到2号Kid构造函数”,我什至会做其他事情,但它不起作用。好了,所以这是我的代码:
import java.util.*; class Kid {
String name;
double height;
GregorianCalendar bDay;
public Kid () {
this.name = "HEAD";
this.height = 1;
this.bDay = new GregorianCalendar(1111,1,1);
}
public Kid (String n, double h, String date) {
// method that toString() can't find somehow
StringTokenizer st = new StringTokenizer(date, "/", true);
n = this.name;
h = this.height;
}
public String toString() {
return Kid(this.name, this.height, this.bDay);
}
} //end class
好的,所以我上面的toString(我知道,我的第三个参数已关闭,应该是String)已关闭。如果我在第三件事中硬编码一个值,它就会变成麻烦,并说找不到它(上面)。那么如何获取日期并将其拆分呢?
调用此的类如下
class Driver { public static void main (String[] args) {
Kid kid1 = new Kid("Lexie", 2.6, "11/5/2009");
System.out.println(kid1.toString());
} //end main method
} //end class
我尝试研究多个构造函数,但这确实没有帮助。我尝试研究toString()
方法,并尝试使用以前toString()
创建的逻辑,但这是全新的,因此从未奏效。
回答:
本toString
应该返回String
。
public String toString() { return "Name: '" + this.name + "', Height: '" + this.height + "', Birthday: '" + this.bDay + "'";
}
我建议你利用IDE的功能来生成该toString
方法。不要手工编码。
例如,如果你只需右键单击源代码并选择Eclipse,便可以这样做。 Source > Generate toString
以上是 如何在Java中正确覆盖toString()? 的全部内容, 来源链接: utcz.com/qa/426367.html