Java &引用;找不到符号";-具有main方法的类可以调用其他类中的一个类的方法,但不能调用其他第二个类的方法?
我已经在这里潜伏了一段时间,但我遇到了一个问题,在我为作业编写的一些Java程序中,我无法解决这个问题。我打赌他们不难理解,但我就是不明白 我一直在犯这样的错误:Java &引用;找不到符号";-具有main方法的类可以调用其他类中的一个类的方法,但不能调用其他第二个类的方法?,java,package,symbols,Java,Package,Symbols,我已经在这里潜伏了一段时间,但我遇到了一个问题,在我为作业编写的一些Java程序中,我无法解决这个问题。我打赌他们不难理解,但我就是不明白 我一直在犯这样的错误: RugbyTeamLadderEditor.java:125: cannot find symbol symbol : method findAveragePoints(java.util.ArrayList<RugbyTeam>) location: class RugbyTeamLadderEditor
RugbyTeamLadderEditor.java:125: cannot find symbol
symbol : method findAveragePoints(java.util.ArrayList<RugbyTeam>)
location: class RugbyTeamLadderEditor
double averagePointsToBePrinted = findAveragePoints(rugbyTeams);
在第1.java部分:
/**
* This method takes a RugbyTeam ArrayList and returns a
* double that represents the average of the points of all
* of the rugby teams
*/
public static double findAveragePoints(ArrayList<RugbyTeam> rugbyTeams)
{
// If there are no objects in the ArrayList rugbyTeams, return 0
if (rugbyTeams.size() == 0)
return 0;
// Declare a variable that represents the addition of the points of each team;
// initialise it to 0
double totalPoints = 0;
// This is a code-cliche for traversing an ArrayList
for (int i = 0; i < rugbyTeams.size(); i++)
{
// Find then number of points a team has and add that number to totalPoints
RugbyTeam r = rugbyTeams.get(i);
totalPoints = totalPoints + r.getPoints();
}
// Declare a variable that represents the average of the points of each teams,
// i.e. the addition of the points of each team divided by the number of teams
// (i.e. the number of elements in the ArrayList); initialise it to 0
double averagePoints = totalPoints / rugbyTeams.size();
return averagePoints;
}
/**
*此方法获取RugbyTeam ArrayList并返回
*表示所有点的平均值的双精度
*橄榄球队的队员
*/
公共静态双findAveragePoints(ArrayList橄榄球队)
{
//如果ArrayList橄榄球队中没有对象,则返回0
if(橄榄球队.size()==0)
返回0;
//声明一个变量,该变量表示每个团队的积分相加;
//将其初始化为0
双倍总积分=0;
//这是一个用于遍历ArrayList的代码陈词滥调
对于(int i=0;i
它还没有完全完成-我仍然需要输入一个print语句来打印这个double,但是现在它与此无关,因为我无法让这个double接受一个值。您正在尝试调用方法
findAveragePoints
。对于当前的实现,您可以说,该方法将在类RugbyTeamLadderEditor
中找到。但是该方法是在类第1部分中定义的。因此,为了实现这一点,您需要使用Part1.
(因为它是一个静态方法)在方法调用之前预先准备好,程序应该可以运行
编辑
代码基本上是这样的
double averagePointsToBePrinted = Part1.findAveragePoints(rugbyTeams);
此外,每次尝试调用在当前类以外的其他类中定义的方法时,您必须提供该类的实例或在调用的方法前面加上该类的名称(如此处Part1)
作为侧节点,您应该更改变量的名称quitProgram
。变量的名称及其含义相互矛盾。因此,为了让阅读代码的人更清楚,您应该更改名称或处理方式。发布代码片段。然后人们可以提供更好的帮助。谢谢,这是一个好主意-我发布了一些相关的代码片段,我确信我能够推断出我应该如何处理其他受影响的代码片段(后来我删除了这些代码,只是因为它们不起作用-一旦我知道该怎么做,我会从头开始编写它们).我不太确定你所说的“用Part1预先结束对方法的调用”是什么意思,我该怎么做?顺便说一句,非常感谢你的评论!我不太擅长这个;我主要是通过课堂讲稿过日子,但到目前为止一切都很好。将该方法称为Part1.findAveragePoints(橄榄球队)
。这是Part1
类的静态方法,而不是Rugbyteamladderdeditor
。哈,这很简单!我想我得处理包裹之类的事情了——非常感谢!编辑:另外,适当地注意到quitProgram变量-cheers
double averagePointsToBePrinted = Part1.findAveragePoints(rugbyTeams);