Java中参数和参数之间的区别[重复]

Posted

技术标签:

【中文标题】Java中参数和参数之间的区别[重复]【英文标题】:Difference between arguments and parameters in Java [duplicate] 【发布时间】:2012-09-24 09:54:00 【问题描述】:

可能重复:What's the difference between an argument and a parameter?

我正在处理一些面试问题。我无法为这个问题想出一个可靠的答案:

Java中实参和形参的区别? 它们有何不同?

【问题讨论】:

这似乎相关:What's the difference between an argument and a parameter? public static void main(String[]args) : args 是一个包含参数列表的参数 如果你结婚了,你只需要担心争论。否则,只需对两者都使用 term 参数。 重点是这个领域的术语不是很清楚,所以这是另一个愚蠢的面试问题。 来自 Oracle 的教程 (docs.oracle.com/javase/tutorial/java/javaOO/arguments.html):注意:参数是指方法声明中的变量列表。参数是调用方法时传入的实际值。调用方法时,使用的参数必须在类型和顺序上与声明的参数匹配。 【参考方案1】:

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

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

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

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

myClassReference.doMethod("someString", 25);

"someString" 和 25 有时被称为参数。

【讨论】:

哦,好吧,如果它们相同,为什么会有两个不同的术语?【参考方案2】:

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

您可以在此处查看说明:http://en.wikipedia.org/wiki/Parameter_(computer_programming)#Parameters_and_arguments

【讨论】:

原语也可以是参数。 ;) @PeterLawrey 这些术语在链接的 WP 页面中的使用方式,42 可以被认为是 int 类型的实例。【参考方案3】:

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

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

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

    函数/方法定义中使用的参数。 函数/方法调用中使用的参数。

请查看以下示例以更好地理解:

package com.***.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);
    


谢谢!

【讨论】:

System.out.println(344);与int v=344; System.out.println(v);哪个是参数/参数?你能帮帮我吗?

以上是关于Java中参数和参数之间的区别[重复]的主要内容,如果未能解决你的问题,请参考以下文章

参数和参数之间的区别[重复]

C#中参数/参数之间的区别[重复]

参数和参数之间的区别[重复]

.NET 中 ref 和 out 参数之间的区别 [重复]

属性与参数和参数之间的区别[重复]

JavaScript promises中错误处理参数和catch之间的区别[重复]