如何在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

回到顶部