我不确定我做错了什么。我正在使用Java,我的控制台说它找不到符号getBattingAverage.batters(i)。击球手是15个名字的阵列,在击球,并击中前:安东尼Rizzo 54 16。
public double getBattingAverage()
{
if(atBats > 0)
return (double) hits / (double) atBats;
else
return 0.0;
}
public double getHighestBattingAverage()
{
for( i = 0; i < batters.length; i++)
{
j = getBattingAverage.batters(i);
if ( maxERA < j)
maxERA = j;
}
答案 0 :(得分:0)
这里的语法:
j = getBattingAverage.batters(i);
应该是 - 对数组元素的方法调用:
j = batters[i].getBattingAverage();
或 - 在列表元素上调用方法。
j = batters.get(i).getBattingAverage();
或 - 使用数组元素的方法调用
j = getBattingAverage(batters[i]);
例如,。
但老实说,真正的答案在这里:不要去试验有关语法的错误。学习书籍/教程,学习这些东西应该如何运作。
答案 1 :(得分:0)
这是无效的Java - 不会编译。从您的代码中可以看出您的意图并不明显。
我看到你定义了一个函数getBattingAverage()。假设您定义了atBats并在其他地方点击,那就没关系。可能是包含对象中的实例字段。请使用带有if
语句的花括号。
在getHighestBattingAverage的for循环中,您可以将batters视为数组。然后你说getBattingAverage.batters(i)
好像getBattingAverage
是一个具有batters()
方法的类的对象。 j来自哪里? maxERA来自哪里?
Java拥有出色的文档。以下是关于Arrays,Language Basics,Tutorials Home和API Reference的部分。这就是我自学Java的方式。
您可能会发现使用像IntelliJ这样的IDE很有帮助,因为它会告诉您在键入时出现的错误,并为您提供编写更好代码的提示。祝学习Java好运!
所有这一切,理想的StackOverflow问题有一个问题。这看起来像是你的第一个Java程序,看起来很不错。但StackOverflow是针对更具体的问题。诸如“没有任何作用,这里是我需要解释”的不完整摘录的问题将被视为过于宽泛。事实上,我可能会投票决定关闭它,因为形成得不够好,或者真的没有一个特定的问题。