当口头谈论方法时,我从不确定是否应该使用参数或参数或其他词。不管怎样,其他人都知道我的意思,但什么是正确的,这些术语的历史是什么?

我是一名c#程序员,但我也想知道人们是否在不同的语言中使用不同的术语。

声明一下,我是自学的,没有计算机科学的背景。(请不要让我去读《代码完成》,因为我这么做是为了让那些还没有史蒂夫·麦康奈尔这本了不起的书的人受益。)

总结

普遍的共识似乎是,在团队环境中可以互换使用这些术语。除非你在定义精确的术语;然后你也可以使用“正式参数/参数”和“实际参数/参数”来消除歧义。


当前回答

你得回到最基本的问题上来。构造函数和方法都有形参和实参。很多人甚至把构造函数称为特殊的方法。这是一个方法声明参数的使用方式:

      type name(parameters){
           //body of method
          }

这是构造函数声明参数的使用方式:

classname(parameters){
//body
}

现在让我们看一个计算立方体体积的示例代码:

public class cuboid {
    double width;
    double height;
    double depth;

      cuboid(double w,double h,double d) { 
      //Here w,h and d are parameters of constructor
       this.width=w;
       this.height=h;
       this.depth=d;
       }

        public double volume() {
        double v;
        v=width*height*depth;
        return v;
        }
        public static void main(String args[]){
           cuboid c1=new cuboid(10,20,30);
           //Here 10,20 and 30 are arguments of a constructor
           double vol;
           vol=c1.volume();
           System.out.println("Volume is:"+vol);

           }
    }

现在你明白了,当我们在代码后面的某个地方调用对象的构造函数/方法时,传递的是参数而不是形参。因此,形参仅限于定义逻辑对象的地方,而实参则在实际创建物理对象时发挥作用。

其他回答

或者,在方法有可选参数的情况下,这样记会更简单:

public void Method(string parameter = "argument") 
{

}

Parameter是参数,它的值,"argument"是实参:)

参数: 已经“内置于”函数中的值。 参数可以改变,这样函数就可以用于其他事情。 论点: 函数的输入 影响函数结果的变量。

我对这些答案还是不满意。他们都开始谈论“函数声明”,我的猴子大脑已经走神了,开始思考独角兽。这根本不能帮助我记住,这只是定义。

我想要一些我可以立即并且永远记在脑子里的东西。

我很快就能理解的唯一答案是:

参数是传入的实际值。

参数更容易定义,只要你知道它们是什么,你就知道参数是另一个。

另一种思考方式是

参数是函数之外的变量 参数是函数内部的变量

简化为:

参数在外面,参数在里面

如果有人不同意我的观点,你可以把你的论点放在外面,把你的参数带进来;)

实参是传递给形参的实际值。

参数是方法定义中的变量。调用方法时,实参是传递到方法参数中的数据。

public void MyMethod(string myParam) { }

...

string myArg1 = "this is my argument";
myClass.MyMethod(myArg1);