0

我正在为一个具有 Player 类和 Team 类的棒球队建模。Player 有一些每个球员的统计数据(姓名、人数、击球率等),而 Team 有一个 Player 对象数组、球队名称和球队规模。

我在 Team.java 中创建了一个 Player 对象数组,并使用一个简单的“for”循环来搜索我的数组。但是,我收到多个编译时错误,说编译器找不到 Player.java 中的任何“getter”。

这是我在 Team.java 中使用这样一个循环的 battingAverage 方法:

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 中使用的所有“getter”(getPosition、getName 等)都会重复出现这种类型的错误。

但是,我知道编译器将 team[i] 识别为单个 Player 对象,因为我也收到以下错误:

    ./Team.java:21: operator + cannot be applied to double,Player.getAverage
            sum = sum + team[i].getAverage;
                  ^

所以在我看来,由于某种原因,在 Player.java 中找不到 getAverage,我不知道为什么。

您可以提供的任何帮助将不胜感激。

4

4 回答 4

6

代替

sum = sum + team[i].getAverage;

利用

sum = sum + team[i].getAverage();

这是一个没有您正在调用的参数的方法,而不是您正在访问的公共字段。

于 2013-04-07T01:52:54.147 回答
1

你应该使用

sum = sum + team[i].getAverage();
于 2013-04-07T01:53:20.803 回答
0

在循环中调用 getAverage 时省略了括号。所有方法调用必须后跟括号,即使它们不带参数。

于 2013-04-07T01:53:23.633 回答
0

您不是访问属性,而是调用方法。这就是显示该错误的原因。change sum = sum + team[i].getAverage;对此sum = sum + team[i].getAverage();

于 2013-04-07T01:54:22.433 回答