【发布时间】:2011-12-19 05:10:29
【问题描述】:
private boolean isValid(int aRating)
{
return aRating >= 1 && aRating <= 10;
}
or
private boolean isValid(int aRating)
{
if (aRating >=1 && aRating <=100
return true;
else
return false
}
我现在需要编写一个方法 setRating(aRating) 将评级设置为 aRating 如果它是有效的。所以我假设我需要在公共方法中使用上面的方法来检查它是否有效。如果它是有效的,那么我需要将 rating = 设置为 aRating。到目前为止,我的想法是这样的:
public void setRating(int aRating)
{
if (isValid() == true)
rating = aRating;
}
但我不能将 isValid 用作 == 到 true,因为它是一种方法。我也尝试使用 isValid();为了尝试使用该方法,但由于顶部的 (int aRating) 而不允许。如果我没有标识符,那么它根本不允许我使用 aRating...
现在是
public void setRating(int aRating)
{
if (isValid(aRating))
rating = aRating;
}
我需要创建一个 setRating() 方法,允许用户从键盘输入一些内容,并且它必须再次有效,我不断收到错误,因为它说我不能重载 SetRating(int aRating) Twice,我理解。但是如果我尝试取出 int 部分,它是无效的,因为它需要一个参数。这就是我所拥有的
public void setRating()
{
Scanner keyboard = new Scanner(System.in);
if (isValid(aRating))
rating = keyboard.nextInt();
}
【问题讨论】:
-
一般来说,提供一个从键盘交互读取的方法
setRating是个坏主意。用户界面的设计应该在程序的另一部分进行,并且只需使用setRating(int)方法。这样您就不必因为老师告诉您将提示更改为“请输入:”而更改每节课的代码。 -
我一定是学错了,或者这本书真的很糟糕,因为它特别要求制作两个 setRating 方法,我在上面演示了一个 Corey 帮助我的方法。 setRating(aRating) 很好,第二个 setRating() 需要“从键盘读取评级,坚持用户提供的评级是有效的”
-
初学者的书和现实生活中的代码有很大的不同。对于初学者的书,使代码尽可能简短和可读是一种很好的风格。没关系,因为代码不必存在于容易丢失概览的大型系统中。但无论如何,你可能会在以后了解到这一点。您现在的任务是从键盘读取并验证输入,这本身就非常有价值。
-
是的,希望在几年后我能看到更大的图景,虽然现在我无法让我的第二个 setRating 工作,因为它需要一个参数类型,它是 int,但它是不允许的因为之前的 setRating 的类型是 int。
-
还有一件事:你的源代码编辑器可能有一个叫做“自动源代码格式化”的功能,你应该不时使用它。它使每个人都可以更轻松地阅读您的代码。
标签: java methods boolean private-methods