我正在研究java遗留代码,我遇到了一个代表正式参数的类,但我不知道为什么会这样。我读到了关于C++ Formal Parameters的内容,但它让我感到困惑,因为在C ++中它与参数相同(我对此肯定有疑问)并且在我的遗留代码中它是一个类,它只有一个存储数字的私有int成员(用他们的set&get方法)但老实说,我没有找到该声明的原因。
在Java和C ++中,形式参数在方法的签名中指定:
public void callIt(String a)
callIt
有一个形式参数,是String
。在运行时我们讨论实际参数(或参数),:
callIt("Hello, World");
“Hello,World”String
是一个实际参数,String a
是一个形式参数。
来自维基百科的parameter条目:
术语参数(有时称为形式参数)通常用于表示函数定义中的变量,
和:
参数(有时称为实际参数)是指传递的实际输入。
根本不同意Elliot Frisch,但我可以更简单地说:
变量w
是以下函数定义中的“形式参数”:
void foobar(Widget w) {
...
}
当您编写以下函数调用时,nextWidget(...)
返回的值是“实际参数”:
foobar(nextWidget(...));
好吧,来Java或任何语言这些定义总是成立:
编程中技术上的参数术语是指调用者传递给被调用者的数据。
并且参数术语在技术上指的是更具体地传递给标识数据类型的标识符的数据类型。因此,参数或多或少是指标识特定类型的标识符。更进一步,形式参数是被调用者方法签名中使用的标识符。
实际参数是调用者在调用调用时使用的标识符。
既然你知道我们甚至可以直接将调用中的参数(即数据)传递给被调用者,那么实际参数不是强制性的,因此可以直接传递数据,而形式参数总是强制性的。