在Java中,什么是形式参数?

15

我目前正在处理Java的旧代码,遇到了一个表示形式参数的类,但我不知道为什么这样。我阅读了关于C++形式参数的文章,但它让我感到困惑,因为在C++中,它与参数相同(我对此说法存有疑问),而在我的旧代码中,它是一个只有一个私有int成员变量的类(通过其set和get方法存储一个数字),但是,坦白地说,我没有找到那个声明的原因。


1
检查实际参数。 - Kick Buttowski
1
我认为你应该检查一下你的类是否有任何文档,如果没有,看看它在哪里被使用。它可能被用于某种语言解析器的上下文中。如果你找到了它,你可以编辑你的问题并添加新信息,也许我们就能指出你的类和“形式参数”之间的联系(这个表达式在Java中很少使用,所以我怀疑这个类代表的是Java语言中的什么东西)。 - RealSkeptic
3个回答

16
在Java和C++中,形式参数在方法签名中指定:
public void callIt(String a)

callIt有一个单一的形式参数,它是一个String。在运行时,我们谈论实际参数(或参数),即:

callIt函数有一个字符串类型的形式参数。在运行时,我们称其为实际参数(或参数),即:

callIt("Hello, World");

"Hello, World" 的String是实际参数,String a是形式参数。

来自维基百科对于parameter(参数)的解释:

术语参数(有时称为形式参数)通常用于指函数定义中的变量,

以及:

argument(有时称为实际参数)指的是传递的实际输入。


4

完全不反对Elliot Frisch的观点,但我可以更简单地说明:

变量w是以下函数定义中的“形式参数”:

void foobar(Widget w) {
    ...
}
nextWidget(...)返回的值是在你编写以下函数调用时的"实际参数":
foobar(nextWidget(...));

2

好的,无论是Java还是任何语言,这些定义总是成立的:

  • 调用者 - 调用函数的函数。

  • 被调用者 - 被调用者执行调用者的函数。

在编程中,参数术语技术上指的是由调用者传递给被调用者的数据。

而参数术语技术上则是指正在传递的数据类型,更具体地说是用于识别数据类型的标识符。因此,参数多多少少是指标识特定类型的标识符。 进一步来说,形式参数是被调用方法签名中使用的标识符。

实际参数是调用程序在调用时使用的标识符。

由于您知道我们甚至可以直接在调用中将参数(即数据)传递给被调用者,因此实际参数不是强制性的,因此可以直接传递数据,而形式参数始终是强制性的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接