㈠ 程序里的行参和实参的区别 详细点 谢谢
从名称上可以看出来,即形式参数和实际参数。形式参数是方法签名里要求接收的参数,比如public
void
Test(int
i),这里的i就是形参,它只是说明我这个方法一定要接收一个int类型的参数,至于参数值是不确定的。在调用Test方法时需要传一个int类型的参数,比如Test(5),这里的5就是实参,当然也可以使用变量。打个比方,上课需要带书,那么带什么书呢?这里不能确定,所以只是告诉你要带书,就是形参了,到了上语文课的时候,那么你要带的书就是语文书,这个是实际的书,即实参。当然这个例子不是很好,看你自己能不能理解吧
㈡ 什么叫实参 形参 怎么用 区别
有以下区别:
1、主体不同:实参在调用有参函数时,函数名后面括号中的参数为“实际参数”。形参不是实际存在变量,又称虚拟变量。
2、目的不同:实参可以是常量、变量或表达式,无论实参是何种类型的量,在进行函数调用时,都必须具有确定的值,以便把这些值传送给形参。
需要注意当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变。
㈢ 如何判断方法的参数类型
不知道用异常的方式处理合适不合适
就是做个嵌套的方法 另一个方法中做转换 失败之后再去循环调用其他的直到成功
㈣ python怎么向类中的函数传递参数
Python中函数参数的传递是通过“赋值”来传递的。但这条规则只回答了函数参数传递的“战略问题”,并没有回答“战术问题”,也就说没有回答怎么赋值的问题。函数参数的使用可以分为两个方面,一是函数参数如何定义,二是函数在调用时的参数如何解析的。而后者又是由前者决定的。函数参数的定义有四种形式:
1. F(arg1,arg2,...)
2. F(arg2=<value>,arg3=<value>...)
3. F(*arg1)
4. F(**arg1)
第1 种方式是最“传统”的方式:一个函数可以定义不限个数参数,参数(形式参数)放在跟在函数名后面的小括号中,各个参数之间以逗号隔开。用这种方式定义的函数在调用的时候也必须在函数名后的小括号中提供相等个数的值(实际参数),不能多也不能少,而且顺序还必须相同。也就是说形参和实参的个数必须一致,而且想给形参1的值必须是实参中的第一位,形参与实参之间是一一对应的关系,即“形参1=实参1 形参2=实参2...”。很明显这是一种非常不灵活的形式。比如:"def addOn(x,y): return x + y",这里定义的函数addOn,可以用addOn(1,2)的形式调用,意味着形参x将取值1,主将取值2。addOn(1,2,3)和addOn (1)都是错误的形式。
第2种方式比第1种方式,在定义的时候已经给各个形参定义了默认值。因此,在调用这种函数时,如果没有给对应的形式参数传递实参,那么这个形参就将使用默认值。比如:“def addOn(x=3,y=5): return x + y”,那么addOn(6,5)的调用形式表示形参x取值6,y取值5。此外,addOn(7)这个形式也是可以的,表示形参x取值7,y取默认值5。这时候会出现一个问题,如果想让x取默认值,用实参给y赋值怎么办?前面两种调用形式明显就不行了,这时就要用到Python中函数调用方法的另一大绝招 ──关健字赋值法。可以用addOn(y=6),这时表示x取默认值3,而y取值6。这种方式通过指定形式参数可以实现可以对形式参数进行“精确攻击”,一个副带的功能是可以不必遵守形式参数的前后顺序,比如:addOn(y=4,x=6),这也是可以的。这种通过形式参数进行定点赋值的方式对于用第1种方式定义的函数也是适用的。
上面两种方式定义的形式参数的个数都是固定的,比如定义函数的时候如果定义了5个形参,那么在调用的时候最多也只能给它传递5个实参。但是在实际编程中并不能总是确定一个函数会有多少个参数。第3种方式就是用来应对这种情况的。它以一个*加上形参名的方式表示,这个函数实际参数是不一定的,可以是零个,也可以是N个。不管是多少个,在函数内部都被存放在以形参名为标识符的tuple中。比如:
对这个函数的调用addOn() addOn(2) addOn(3,4,5,6)等等都是可以的。
与第3种方式类似,形参名前面加了两个*表示,参数在函数内部将被存放在以形式名为标识符的dictionary中。这时候调用函数必须采用key1=value1、key2=value2...的形式。比如:
1. def addOn(**arg):
2. sum = 0
3. if len(arg) == 0: return 0
4. else:
5. for x in arg.itervalues():
6. sum += x
7. return sum
那么对这个函数的调用可以用addOn()或诸如addOn(x=4,y=5,k=6)等的方式调用。
上面说了四种函数形式定义的方式以及他们的调用方式,是分开说的,其实这四种方式可以组合在一起形成复杂多样的形参定义形式。在定义或调用这种函数时,要遵循以下规则:
1. arg=<value>必须在arg后
2. *arg必须在arg=<value>后
3. **arg必须在*arg后
在函数调用过程中,形参赋值的过程是这样的:
首先按顺序把“arg”这种形式的实参给对应的形参
第二,把“arg=<value>”这种形式的实参赋值给形式
第三,把多出来的“arg”这种形式的实参组成一个tuple给带一个星号的形参
第四,把多出来的“key=value”这种形式的实参转为一个dictionary给带两个星号的形参。
例子:
1. def test(x,y=5,*a,**b):
2. print x,y,a,b
就这么一个简单函数,来看看下面对这个函数调用会产生什么结果:
test(1) ===> 1 5 () {}
test(1,2) ===> 1 2 () {}
test(1,2,3) ===> 1 2 (3,) {}
test(1,2,3,4) ===> 1 2 (3,4)
test(x=1) ===> 1 5 () {}
test(x=1,y=1) ===> 1 1 () {}
test(x=1,y=1,a=1) ===> 1 1 () {'a':1}
test(x=1,y=1,a=1,b=1) ===> 1 1 () {'a':1,'b':1}
test(1,y=1) ===> 1 1 () {}
test(1,2,y=1) ===> 出错,说y给赋了多个值
test(1,2,3,4,a=1) ===> 1 2 (3,4) {'a':1}
test(1,2,3,4,k=1,t=2,o=3) ===> 1 2 (3,4) {'k':1,'t':2,'o':3}
㈤ 形式参数指的是方法被( )时的参数行,实际参数是方法被( )时所传递进去的变量或值
1:; 每个Java语句包括C/C++都是以一个逗号结束!
2:调用,声明
3:return, 方法中的结束}
4:void 如 void main()
5:. 如class a = new class();a.i就是引用a对象的i变量!!!
6:class 如:public class a{}
7:new class a = new class();
㈥ Java中实际参数和形式参数的区别有哪些
形参和实参有以下显着的区别:
1、形参不能离开方法。形参只有在方法内才会发生作用,也只有在方法中使用,不会在方法外可见。而实参可以再程序的任何地方都使用。
2、形参代表一个合集,具有不确定性,而形参代表一个独立事物,具有确定性(即使是为null)。也就是说,形参不能代表具体的对象,只能代表这些对象共同的属性(比如超类、各种其他自定义属性等等),而实参则是具体的对象(比如超类的实例)。
3、形参的值在调用时根据调用者更改,实参则用自身的值更改形参的值(指针、引用皆在此列)、
㈦ 如何判断实参形参
int s(int x);
x就是形参。实参就是对函数的调用时传递 给函数的参数,是一个实际值,比如s(9),9就是实参。
㈧ java编程中的成员方法是什么
类包括成员变量和方法两部分。成员变量表示类的属性,一数据域的形式表达,方法是数据的操作的定义。在JAVA中,方法只能作为类的成员,也称为成员方法。方法操作类所定义的数据,以及提供对数据的访问的代码。
方法声明包括方法名、返回类型和外部参数。其中参数的类型可以是简单数据类型,也可以是复合数据类型(又称引用数据类型)。
对于简单数据类型来说,java实现的是值传递,方法接收参数的值,但不能改变这些参数的值。如果要改变参数的值,则用引用数据类型,因为引用数据类型传递给方法的是数据在内存中的地址,方法中对数据的操作可以改变数据的值。
编辑并运行一个Java程序
使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类,通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码;
存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用。
以上内容参考:网络-Java
㈨ C# 方法调用时params如何传入指定参数
1. 参数数组-----params(可以将相同类型,数量可变的多个参数传给一个方法)
2. 引入:一般,参数的数量都是由目标方法声明所确定。然而,有时我们希望参数的数量是可变的。或许最好的方法是为方法传一个数组。然而,这会使调用代码变得稍微复杂一些,因为需要事先构造一个数组,再将这个数组作为参数来传递。
3. 为了简化代码,c#提供了一个特殊的关键字,它允许在调用一个方法是提供数量可变的参数,而不是由方法事先固定好参数的数量.
示例说明:上述例子中方法func可接受数量可变的参数,不管这些参数是以逗号分隔的,还是作为一个数组来传递的。为了获得这样的效果,func方法需要:(1)在方法声明的最后一个参数之前,添加一个parmas关键字。(2)将最后一个参数声明为一个数组。
注意事项:
@1、参数数组不一定是方法声明中的唯一参数。单数必须是最后一个参数。由于只有最后一个参数才可能是参数数组,所以方法最多只能有一个参数数组。
@2、调用者可以为参数数组指定0个参数,这会造成包含0个数据项的一个数组。也可以显示地使用一个数组,而不是以逗号分隔的参数列表,最终生成的CIL代码是一样的。
@3、参数数组是类型安全的------类型必须匹配与数组指定的类型。
@4、假如目标方法的实现要求一个最起码的参数数量,请在方法声明中显示指定必须提供的参数。这样一来,假如要求的参数遗失了,就会导致编译器报错,而不需要依赖于运行时错误处理。例如:使用int max (int first,params int[] operands)而不是int max(params int[] operands),确保至少有一个值传给方法max。
㈩ 如何用实验的方法确定温度控制器的相关参数
智能控制方法。智能温度控制方法包括自适应控制算法、智能PID算法以及参数自整定方法。自适应控制算法能根据控制对象的特点建立数学模型,通过一系列优化运算决定控制量的大小。智能PID算法是在纂本PID算法的基础上,附加一些新的规则使PID调节适应过程变量的变化,达到较好的控制效果。控制器不仅能完成PID参数自整定,而且还能在程序运行中,根据给定条件调用不同的PID参数组。
多种工作方式。智能温度控制器具有准备(READY)、运行(RUN)、保持(HOLD)、测试(TEST)、结束(END)、PV启动、自动(AUTO)、手动(MANUAL)等多种工作方式,以满足温度过程控制的需要。
强大的程序功能。支持工艺曲线数量,每条工艺曲线的段数,参数的设置范围,曲线的链接和循环,各种事件的数量等内容反映了控制器的程序处理能力。例如DCP31智能温度控制器,工艺曲线数量19条,每条工艺曲线30段,时间设置范围从0到99小时59分,曲线的链接0~19,程序循环次数0~9999,还有8种操作和时间事件在编程时可供选择。
多种报警设置。智能温度控制韶支持多种报警形式,如温度上、下限报警,温度偏差报警,温度绝对值报警等,报警是否生效,在什么条件下报警都可以通过参数设置完成。
模块化结构。硬件和软件的模块化结构是智能温度控制器的一大特点,根据使用者的不同要求,采用不同的模块组合,完成特定的控制功能。在进行选择时,主要考虑与输人信号有关的输人模块,与输出控制相关的输出模块,与数据通讯相关的通讯模块及与控制相关的控制模块等。
参数化设置。简单而方便的参数化设置,使得智能温度控制器应用更加灵活,强大的控制能力和过程适应性都是通过参数设置完成的。参数可分为功能参数、传感器参数、控制参数和工艺参数等4类。功能参数决定了控制器的软硬件组成和结构,传感器参数与输人信号有关,控制参数与过程变量控制有关,工艺参数取决于现场工艺要求。
较强的过程显示功能。智能温度控制器采用LED或LCD显示器,支持测量值(PV),设定值(SP),程序号,段号,工艺曲线,工作状态和工作信息显示等。这些显示信息基本能满足温度过程控制要求,使操作者一目了然地观察到控制器工作状态,了解过程控制变量的变化情况。