我正在使用Player类和Team类为棒球队建模。玩家拥有每个玩家的统计数据(名称,数量,击球率等),并且球队拥有一系列球员对象,球队名称和球队规模。
我在Team.java中创建了一个Player对象数组,并使用一个简单的'for'循环来搜索我的数组。但是,我得到多个编译时错误,说编译器找不到任何我在Player.java中的'getters'。
这是我的battingAverage方法,它在Team.java中使用了这样一个循环:
public double battingAverage () {
double sum = 0.0;
for (int i = 0; i<size; i++) {
sum = sum + team[i].getAverage;
}
return (sum / size);
}
这是Player.java中的'getter'
public double getAverage () {
return average;
}
(平均值被声明为私有动态字段,并由构造函数赋予值)
这是编译器给我的错误:
./Team.java:21: cannot find symbol
symbol : variable getAverage
location: class Player
sum = sum + team[i].getAverage;
^
我在Team.java(getPosition,getName等)中使用的所有“getters”都会重复这种类型的错误。
但是,我知道编译器将team [i]识别为单个Player对象,因为我也收到以下错误:
./Team.java:21: operator + cannot be applied to double,Player.getAverage
sum = sum + team[i].getAverage;
^
所以在我看来,由于某种原因,getAverage刚好无法在Player.java中找到,我无法弄清楚原因。
非常感谢您提供的任何帮助。
答案 0 :(得分:6)
而不是
sum = sum + team[i].getAverage;
使用
sum = sum + team[i].getAverage();
这是一个没有参数的方法,而不是您正在访问的公共字段。
答案 1 :(得分:1)
你应该使用
sum = sum + team[i].getAverage();
答案 2 :(得分:0)
在循环中调用getAverage时,省略了括号。所有方法调用必须后跟括号,即使它们不带参数。
答案 3 :(得分:0)
您不是访问属性,而是调用方法。这就是错误显示的原因。对此change sum = sum + team[i].getAverage;
sum = sum + team[i].getAverage();