2013-09-25 1 views
-4

Этот код представляет собой небольшую лабораторию в классе и увидел, что в методе int add() число 1 и 2 не были объявлены. Может кто-нибудь сказать мне, почему это так?Почему в этом java-коде не должно быть указано число1 и number2?

public class htc { 

public static void main(String[] args) { 
    int n1 = 4; 
    int n2 = 5; 
    int n3 = add(n1, n2); 
    int result = add(n2, add(add(9, add(2, n3)), 3)); 
    System.out.println(result); 
} 

public static int add(int number1, int number2) { 
    int sum = number1 + number2; 
    return sum; 
} 
} 
+5

Я могу увидеть 'int number1' и' int number', объявленные как параметры для метода public public int add. Каков твой вопрос? –

+2

Они объявлены как переменные параметра для 'add', что дает им локальный контекст для метода' add' ... – MadProgrammer

+2

Хорошо, неважно, я так или иначе пропустил это. – answerSeeker

ответ

1

number1 и number2 оба параметра. Параметры объявляются, когда вы пишете:

(int number1, int number2) 

Это означает, что всякий раз, когда вы вызываете функцию, вы передаете значения в этих двух переменных автоматически в качестве параметров.

Например, когда вы пишете: add(n1, n2), вы говорите ему, чтобы запустить эту функцию и заменить n1 in для number1 и n2 in для number2.

+0

фактически «скопируйте значение n1 в число 1 и n2 на число2» строго («подставить» может означать передачу ссылки, которая неверна). – lejlot

1
public static int add(int number1, int number2) 

Этот код означает, что вы объявляете number1 и number2, так как у вас есть ВНУТР перед ними, хотя они не имеют никакой ценности в них еще нет. Но эта функция добавления вызывается, когда вы вызываете функцию add из main(), и компиляция начинается с main(), поэтому, когда вы вызываете эту функцию из main(), параметры функции add инициализируются значениями из n2 и add (add (9, add (2, n3)), 3)), так что число 1 и число2 имеют в них определенное значение. Таким образом, код выполняется без ошибок. Надеюсь, вы сейчас это поймете.

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