尝试编写一个公共方法 costMultiplier(),该方法不带参数并返回双精度值



该方法应为以"WC1A"或"EC1A"开头的邮政编码返回 1.2,否则返回 1.0。我不确定我是否做对了。

public double costMultiplier(final String postCode) {
double multiplier = 1.0d;  // Default`
String pc = postCode.trim().toUpperCase(); ` 
if (pc.startsWith("WC1A") || pc.startsWith("EC1A")) {
multiplier = 1.2;  // For London
}
return multiplier;
}

我还会为此方法提供特定的邮政编码,例如:

double multiplier = costMultiplier("EC1A 9DT");
System.out.println("Determined Multiplier = " + multiplier);

另外,我如何使用字符串方法(例如substring(((来获得答案,并且不确定是公共是最好的还是私有的?

好的,有几件事。

首先,对于邮政编码的简短列表,您的示例代码看起来不错。它不起作用吗?

至于子串...子字符串有两种形式。一个采用起始索引(从 0 开始(并穿过字符串的末尾。另一个开始和停止。结束值在最后一个字符之后,例如:

String pc = oldString.substring(0,4);

这实际上很方便。当抓取字符串的开头时,第二个参数是要结束的索引,但它也是长度。因此,对于 10 个字符的字符串,你将获得索引 0 到 3 处的前四个字符。

因此,对于您的特定问题:

public double costMultiplier(String postCode) {
double retVal = 1.0;
String first = postCode.trim().substring(0,4).toUpperCase();
if (first.equals("WC1A") || first.equals("EC1A")) {
retVal = 1.2;
}
return retVal;
}

现在,至于私人与公共...这取决于谁会打电话。此方法仅供内部使用吗?然后将其设为私有。如果需要能够从另一个类调用它,请将其公开。这闻起来像你可以公开的东西。私有方法通常是那些执行类工作内部的方法。

在你的学习阶段,你可以把所有的方法都公开,以后开始考虑公共接口和私有接口。它有点先进。但基本上,这样想。

公共方法是您向外界公开的方法。想象一下其他人使用你的代码。想象一下,你会有同事不想知道你的代码是如何工作的;他们只会使用它。公共方法是他们可以依靠的。私有方法可以改变,除了处理代码的人之外,没有人关心。

它比这更复杂,但我从未见过这么好的解释。这真的取决于你的经验来指导你,现在,你没有任何经验可以作为指导。

最新更新