Я правильно понимаю передачу аргументов в функции правильно? - PullRequest
3 голосов
/ 24 февраля 2010

Полный вопрос по нуби здесь.

Я просто изучаю Java и изучаю передачу аргументов в функции. Я создал этот базовый пример, и он делает то, что я ожидаю, но я хочу быть уверен, что правильно понимаю «путь прохождения сигнала»:

    public void run() {

        int value = 4;
        println(" the value is "+ add(value));  
    }

    private int add(int n) {        
        int result = 4;
        result = n + result;

        return result;
            }
    }

Правильно ли я сказать, что:

1) int value передается из add(value) в приватный метод, а затем int n = 4

2) затем result = n + return. (8)

3) затем return result возвращается к общедоступному методу и занимает место add(value).

Правильно ли мое мышление? Спасибо! Joel

Ответы [ 5 ]

3 голосов
/ 24 февраля 2010

Да, точно.

2 голосов
/ 24 февраля 2010

1) значение int передается из add (value) в закрытый метод, а затем int n = 4

Передается значение int в метод add (), и тогда int n будет 4.

2) тогда результат = n + return. (8)

Да, это правда. Альтернативный синтаксис будет result += n;, который будет делать то же самое.

3) затем возвращаемый результат возвращается обратно в открытый метод и заменяет add (value).

Да, тогда значение возвращается из add, и это значение будет использоваться.

1 голос
/ 24 февраля 2010

Ваше мышление правильное.

0 голосов
/ 24 февраля 2010

На (2) это должно быть "result = n + result", а не "n + return". Но я думаю, что это просто опечатка, вы, кажется, понимаете, что происходит.

0 голосов
/ 24 февраля 2010

Да, это и есть передача параметров и возвращение значений. Обратите внимание, что в Java все передается значением .

Это означает следующее:

 void f(int x) {
   x = 0;
 }

 void main() {
   int n = 10;
   f(n);
   // n is still 10
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...