2015-12-27 5 views
-6

Первый метод:Как получить результат функции из другой функции?

public void Calculate (int a, int b) { 
    int sum =a+b; 
} 

Второй метод:

public int getResult(){ 
    return sum ; 
} 
+1

Вызовите функцию и сохраните ее в переменной ..? – OscuroAA

+1

'sum' - это локальная переменная в' Calculate() ', вы не можете получить к ней доступ в' getResult() ' – Ramanlfc

+0

Это не имеет смысла. Или, может быть, вы хотите хранить' sum' как переменную-член класса. –

ответ

3
class xyz { 
    int sum; 
    public void Calculate(int a, int b) { 
     sum = a + b; 
    } 
    public int getResult() { 
     return sum; 
    } 
} 
+0

Пожалуйста, отформатируйте так, чтобы ответ был читабельным и действительно полезным для кого-то. –

4
1. public int Calculate (int a, int b) { 
int sum = a + b; 
return sum; 
} 

2. 
public int getResult(){ 
return sum = Calculate(15,12); 

} 

Или Попробуйте 1. общественного ИНТ Вычислить (Int А, внутр б) { INT сумма = а + Ь; возвратная сумма; }

2.public int getResult(int a, int b){ 
return sum =Calculate(a,b); 

} 
+0

Это вернет сумму 15 + 12 всегда i.e 27 –

+0

да, спасибо за исправление меня, я собирался отредактировать это. Я понял это, как только я отправляю ответ –

+0

Также нет смысла использовать два метода 'calculate' (<-lower name name remember) и' getResult', если оба имеют одинаковое значение 'a + b', а также переназначают та же переменная 'sum' –

3

Ваша переменная loacalized только вычислить. Вы можете либо позвонить calulate его самостоятельно или в моем oppinon глобализировать vaiable

Class calculate { 
    int sum; 
     public void calculate(int a, int b) { 
     sum =a+b; 
     } 

     public int getResult(){ 
     return sum ; 
     } 
} 
+2

Вы должны обернуть этот код в объявлении класса, а также изменить имя метода метода вычисления в нижнем регистре (условные обозначения) –

+0

Done @ Gaël Это помогло! –

5

Это не совсем понятно, что вы хотите сделать здесь, но мне кажется, что у вас есть два варианта ...

Вы можете хранить значение в переменной класса уровня:

private int sum = 0; 
public void Calculate (int a, int b) { 
    sum = a + b; 
} 
public int getResult() { 
    return sum; 
} 

Или, возможно, более эффективно, просто возвращает значение из функции, которая вычисляет его:

public int Calculate (int a, int b) { 
    return a + b; 
} 

Если нет особо веской причины, обычно лучше просто сделать самое простое. В этом случае просто добавить цифры и вернуть результат. В противном случае необходимо будет помнить, что код всегда должен звонить Calculate()до, вызывая getResult() и создавая зависимость от порядка операций при использовании объекта.

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