2013-04-07 5 views
0

Я моделирую бейсбольную команду как с классом игрока, так и с классом Team. У игрока есть статистика каждого игрока (имя, номер, средний уровень и т. Д.), А у команды есть массив объектов Игрока, имя команды и размер команды.Компилятор не может найти мои «getters»

Я создал массив объектов Player в Team.java и использовал простой цикл «для» для поиска по моему массиву. Тем не менее, я получаю несколько ошибок времени компиляции, которые говорят, что компилятор не может найти ни одного из моих «получателей», которые находятся в Player.java.

Вот мой метод 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

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 и т. Д.).

Однако, я знаю, что компилятор распознает команду [я] в качестве особого объекта игрока, потому что я получаю следующее сообщение об ошибке:

./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

+0

если это поможет, не стесняйтесь нажимать кнопку «вверх» и галочку :) – KyelJmD

Смежные вопросы