web-dev-qa-db-fra.com

Différence entre les arguments et les paramètres dans Java

Duplicate possible:
Quelle est la différence entre un argument et un paramètre?

Je passais par quelques questions d'entrevue. Je n'ai pas pu trouver de réponse solide à cette question:

Différence entre les arguments et les paramètres en Java?
Comment sont-ils différents?

39
AppSensei

Généralement, un paramètre est ce qui apparaît dans la définition de la méthode. Un argument est l'instance transmise à la méthode pendant l'exécution.

Vous pouvez voir une description ici: http://en.wikipedia.org/wiki/Parameter_ (computer_programming) #Parameters_and_arguments

51
yiannis

Le terme paramètre fait référence à toute déclaration entre parenthèses après le nom de la méthode/fonction dans une déclaration ou une définition de méthode/fonction; le terme argument fait référence à toute expression comprise entre les parenthèses d'un appel de méthode/fonction. c'est à dire.

  1. paramètre utilisé dans la définition de fonction/méthode.
  2. arguments utilisés dans l'appel de fonction/méthode.

Veuillez regarder l'exemple ci-dessous pour une meilleure compréhension:

package com.stackoverflow.works;

public class ArithmeticOperations {

    public static int add(int x, int y) { //x, y are parameters here
        return x + y;
    }

    public static void main(String[] args) {
        int x = 10;
        int y = 20;
        int sum = add(x, y); //x, y are arguments here
        System.out.println("SUM IS: " +sum);
    }

}

Merci!

15

Il y a différents points de vue. On est ils sont les mêmes. Mais dans la pratique, il faut différencier les paramètres formels (déclarations dans l'en-tête de la méthode) et les paramètres réels (valeurs transmises au moment de l'invocation). Bien que les expressions "paramètre formel" et "paramètre réel" soient courantes, "argument formel" et "argument réel" ne sont pas utilisés. En effet, "argument" sert principalement à désigner "paramètre réel". En conséquence, certaines personnes insistent sur le fait que "paramètre" ne peut désigner que "paramètre formel".

8

Ils ne sont pas. Ils sont exactement les mêmes.

Cependant, certaines personnes disent que les paramètres sont des espaces réservés dans les signatures de méthode:

public void doMethod(String s, int i) {
  ..
}

On dit parfois que String s et int i sont des paramètres. Les arguments sont les valeurs/références réelles:

myClassReference.doMethod("someString", 25);

"someString" et 25 sont parfois considérés comme des arguments.

5
stealthjong

En Java, il existe deux types de paramètres, les paramètres implicites et les paramètres explicites. Les paramètres explicites sont les arguments passés à une méthode. Le paramètre implicite d'une méthode est l'instance à partir de laquelle la méthode est appelée. Les arguments sont simplement l'un des deux types de paramètres.

2
Tristan Hull