Java中参数和参数之间的区别

Difference between arguments and parameters in Java

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
What's the difference between an argument and a parameter?

我正在回答一些面试问题。我没能对这个问题给出一个可靠的答案:

Java中参数和参数之间的区别?它们有什么不同?


通常,参数是方法定义中出现的参数。参数是在运行时传递给方法的实例。

你可以在这里看到一个描述:http://en.wikipedia.org/wiki/parameter_u(computer_programming)parameters_and_arguments


术语参数是指方法/函数声明或定义中方法/函数名称后面括号内的任何声明;术语参数是指方法/函数调用的括号内的任何表达式。即

  • 函数/方法定义中使用的参数。
  • 函数/方法调用中使用的参数。
  • 请看下面的示例,以便更好地理解:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    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);
        }

    }

    谢谢您!


    有不同的观点。一是它们是相同的。但是在实践中,我们需要区分形式参数(方法头中的声明)和实际参数(在调用点传递的值)。虽然短语"形式参数"和"实际参数"很常见,但不使用"形式参数"和"实际参数"。这是因为"参数"主要用于表示"实际参数"。因此,有些人坚持"参数"只能表示"形式参数"。


    他们不是。它们完全一样。

    但是,有人说参数是方法签名中的占位符:

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

    字符串s和int i有时被称为参数。参数是实际值/引用:

    1
    myClassReference.doMethod("someString", 25);

    "somestring"和25有时被称为论点。


    在爪哇中,有两种类型的参数,隐式参数和显式参数。显式参数是传递给方法的参数。方法的隐式参数是从中调用该方法的实例。参数只是两种类型的参数之一。