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