2016-10-23 6 views
1

Noob вопрос, но я хочу рассчитать разницу целей, поэтому два метода: «Цели для» и «Цели против». Я хочу вычесть эти два метода, чтобы он возвращал результат всякий раз, когда я нажимаю метод getGoalDifference. (Очевидно, что я написал в теле метода getGoalDifference ниже совершенно неправильно, я просто не знаю, что точный код)Как вычесть два метода в Java?

public int getGoalsFor(){ 

    return GoalsFor; 
} 

public int getGoalsAgainst(){ 

    return GoalsAgainst; 
} 

public int getGoalDifference(){ 

    return 

    GoalsFor - GoalsAgainst; 



} 
+0

'GoalsFor() - GoalsAgainst();' –

+1

Подсказка: это ** супер ** основной материал. Подумайте о том, чтобы прочитать хорошую книгу/учебник. – GhostCat

+0

на самом деле ваш код будет работать, если они находятся в одном классе. (хотя, возможно, лучше использовать методы) – user140547

ответ

0

Не пытаясь скомпилировать, но ваша функция должна выглядеть так:

public int getGoalDifference(){ 
    return this.getGoalsFor() - this.getGoalsAgainst(); 

} 
+0

Вы не используете это. для вызовов методов (я думаю, что это даже не разрешено) –

+0

Можно использовать без этого, конечно. Но это тоже сработает. Даже его образец должен работать, если это то, что он возвращает, является переменными именами. – vlada

+0

О да, конечно, это была моя ошибка, сэр. –

0

вы можете сделать так:

public int getGoalDifference(){ 
     int goalsFor,gaolsAgainst; 
     goalsFor = GoalsFor(); 
     gaolsAgainst = GoalsAgainst(); 
     int result = goalsFor - gaolsAgainst ; 
     return result; 
    } 
+0

Это getGoalsFor() и getGoalsAgainst(). Особенно, если newby задает такие ошибки, может запутаться для искателя;) –

+0

Я обновил свой ответ @MeinName –

-1

вы хотите, чтобы захватить 2 значения, а затем возвращают разницу тем, непосредственно не вычитаем эти два метода. Возможно, что-то вроде:

public static int totalGoals(int goalsFor, int goalsAgainst){ 
return goalsFor - goalsAgainst; 

Если вы хотите все это одним способом.

+0

почему статические и почему входные переменные? –

1

У вас работают getGoalsFor() и getGoalsAgainst? Если они работают, ваш getGoalDifference() должен работать. Причина в том, что GoalsFor и GoalsAgainst являются переменными в вашем классе, и кажется, что вы можете получить доступ к этим двум переменным (так как два метода получения работают префектно отлично).

Хотя я не знаю, если это делает каких-либо различий, но оператор возврата обычно записывается в одной строке

public int getGoalDifference(){ 
    return GoalsFor - GoalsAgainst; 
} 

вместо

public int getGoalDifference(){ 
    return 

    GoalsFor - GoalsAgainst; 
} 

Если ваш код по-прежнему не работает пожалуйста, объясните, в чем проблема/ошибка.

Конечно, вы можете также записать getGoalifferences() метод следующим образом:

public int getGoalDifference(){ 
    int goalsFo = getGoalsFor(); 
    int goalsAg = getGoalsAgainst(); 
    return goalsFo - goalsAg; 
} 

Еще одна небольшой информацию: имена переменных обычно начинаются с маленькими буквами goalsFor вместо GoalsFor =)

Edit: Также вы никогда не вычитайте методы в java. В некоторых других языках программирования «методы вычитания» более или менее возможны, но не в java. То, что вы вычитаете, всегда является переменными (значениями). Даже если вам кажется, что вы «методы substract» вы вычитаете значения, возвращаемые методами.