2013-04-07 46 views
0

我正在用一个Player类和一个Team类建模一个棒球队。玩家有一些玩家的统计资料(名字,数字,击球平均数等),而球队有一系列球员对象,球队名称和球队规模。编译器找不到我的'getters'

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

下面是在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的 '吸'

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'。

但是,我知道,编译器识别团队[我]为单一Player对象,因为我也得到了以下错误:

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

所以在我看来,由于某些原因,getAverage只是不能在Player.java中找到,我无法弄清楚为什么。

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

回答

6

而不是

sum = sum + team[i].getAverage; 

使用

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

这是不带参数你调用一个方法,而不是您要访问的公共领域。

1

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

你忽略了括号,当你在循环中调用getAverage您应该使用。所有的方法调用都必须紧接着括号,即使它们没有参数。

0

你不是一个访问属性,而是你正在调用一个方法。所以这就是为什么这个错误正在显示。 change sum = sum + team[i].getAverage;到此sum = sum + team[i].getAverage();

+0

谢谢!我盯着我的电脑一个小时,现在我觉得很蠢。它总是小事情。 – user2098119 2013-04-07 02:01:56

+0

如果有帮助,请随时点击向上按钮和复选标记:) – KyelJmD 2013-04-07 02:23:01