我创建了一个构造函数,用户将评级输入到类中。但是我想将最大额定值设置为10,因为规范要求可以设置的最高等级为10.
这是构造函数:
public Card(String nam, int rat, int cred)
{
name = nam;
rating = rat;
credits = cred;
}
因此,当我创建一张新卡时,如果用户输入的数字大于10,则应警告他们10是他们可以设置的最高数字。
答案 0 :(得分:2)
如果rat
不在所需的范围内,则在构造函数中抛出异常。
public Card(String nam, int rat, int cred)
{
if (rat < 0 || rat > 10)
{
throw IllegalArgumentException("Rating has to be within valid bounds of 0 through 10");
}
name = nam;
rating = rat;
credits = cred;
}
答案 1 :(得分:1)
您可以在构造函数中拥有所需的任何代码逻辑。所以只需将它添加到构造函数中。
示例:
public Card(String nam, int rat, int cred)
{
name = nam;
if (rating <= 10)
rating = rat;
else
rating = 10;
credits = cred;
}
如果你想重新引用,你可以抛出异常,或者在构造函数本身中重新引用(更难以确保你有适当的输入)。只要您正确处理异常,如果您想要重新提示,它可能是最好的选择。
答案 2 :(得分:0)
很简单,在继续使用代码逻辑之前验证所有输入,如下所示:
public Card(String nam, int rat, int cred) {
if (rat > 10) {
throw new IllegalArgumentException("Maximum rating allowed is 10. You've entered " + rat);
}
//Other logic here, like
rating = rat;
}
我为此目的使用IllegalArgumentException
。