当前位置:首页 » 编程语言 » 形参java

形参java

发布时间: 2022-04-17 16:05:11

A. java中形参实参各是什么,分别有什么作用

形参:全称为"形式参数"是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传如的参数.
实参:全称为"实际参数"是在调用时传递个该函数的参数.
形参和实参的类型必须要一致,或者要符合隐含转换规则,
当形参和实参不是指针类型时,在该函数运行时,形参和实
参是不同的变量,他们在内存中位于不同的位置,形参将实
参的内容复制一份,在该函数运行结束的时候形参被释放,
而实参内容不会改变.
而如果函数的参数是指针类型变量,在调用该函数的过程
中,传个函数的是实参的地址,在函数体内部使用的也是
实参的地址,即使用的就是实参本身.所以在函数体内部
可以改变实参的值.
给你一个很简单的例子:
int
f(int
b)
/*b为形参*/
{
return
b;}
main()
{int
a=1;printf("%d",f(a));/*a为实参*/}

B. 在java中,什么是形参什么是实参,它们都是什么类型的,它们之间的传递关系什么样的

形参:全称为“形式参数”是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。
形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数处理的结果作为形参。没有形参的函数在形参表的位置应该写void.main 函数也可以有形参和返回值,其形参也称为命令行参数,由操作系统在启动程序时初始化,其返回值传递给操作系统。
实参:可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。
实参和形参的区别:
空白或占位符
1。函数的形参列于函数声明中,在函数定义的函数体内使用。当函数调用时,形参(任何种类的)是一类将被填充的空白或是占位符。
用来填充形参
2。实参是用来填充形参的。当函数被调用时,实参列在函数名后面的括号里。执行函数调用时,实参被传递给形参。
传值调用和引用调用
3。传值调用和引用调用指的是用于参数传递过程中的一种机制。传值调用中,只使用了实参的值。传值调用机制里,形参是一个局部变量,其初始值为相应实参的值。在引用调用机制里,将实参的地址传递给形参,从表面上看是以实参变量取代形参,因此任何发生在形参上的改变实际上都发生在实参变量上。

C. Java写方法的时候想把arraylist作为形参怎么弄

List是接口,ArrayList实现了List接口,所以可以利用多态,把Arraylist作为形参。

public static void method(List list){

System.out.println(list);

}

public static void main(String[] args) {

List list = new ArrayList();

list.add("1");

list.add("2");

list.add("3");

method(list);

}

(3)形参java扩展阅读:

当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境在Java源文件中定义不同的类;

通过调用类中的方法来访问资源系统,把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用。

D. java里形参是什么

首先纠正下java2000的第一个错误说法:"java里不叫这个,而是叫传值和传对象。".引用jiabobber的话:形参就是形式上的参数啊,实参就是实际的参数啊,其实各种语言形参实参都一样的概念的吧。

jiabobber的这句话是对的,实参,形参是程序设计语言中的通用概念,并不是只有C,C++有而JAVA没有,也不叫传对象;

直白的讲,形参是形式上的参数,实参是实际的参数;
形参只是对实参的一种抽象类型描述,只是声明一个函数(方法)能接受什么类型的实参,而不确定接受的实参具体内容是多少;实参就是传递给函数(方法)对应形参的具体内容(值),形参的初始指(内容)由实参决定.形参在函数(方法)结束返回后就被释放了.

到这里,就又出现程序设计语言中的另一通用概念参数传递方式:传值和传址;

1.传值方式,只是将实参的值的拷贝传递给函数(方法),在方法内对形参进行操作,其对象是实参的拷贝,对实参不能造成影响.在方法结束返回后,形参被释放丢弃,实参的内容并不会改变;

2.传址方式,将实参的地址传递给函数(方法),在方法内对形参进行操作即等于对实参进行相同的操作,在方法结束返回后,形参同样被释放,实参的内容将会是对形参进行操作的结果.

这里,又要纠正java2000的一个错误:"传对象的引用,用于把一个对象的地址作为参数传过去,而不是对象本身。"

对象引用即对象在堆中的地址,记住!不是对象,是对象的地址.而且对于传址方式,在方法中交换两个形参后,实参也应该同时被交换!
对于形参是对象引用的,其传递方式还是按值传递!传的是对象引用的拷贝值,并不是对象引用的地址,所以方法能改变对象引用所指的对象的状态(因为对象引用及其拷贝都指向同一个对象),却不能将两个对象交换(因为形参是对象引用的拷贝,所以改变形参并不能改变实参的内容,即对象的地址.不明白的要跟基本类型的类比).

真是好累!写这么一堆...下次不搞了!

E. java 中实参和形参的区别

形参和实参的特点
1、形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参有在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。
2、实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。
3、实参和形参在数量上,类型上、顺序上应严格一致,否则就会发生类型不匹配的错误。
4、在一般传值调用的机制中只能把实参传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参值发生改变,而实参中的值不会变化。而在引用调用的机制当中是将实参引用的地址传递给了形参,所以任何发生在形参上的改变实际上也发生在实参变量上

F. 关于Java多态以及可变形参的问题

首先,运行结果的确是sub。但不是因为“编译器认为 int[] arr 和 int...arr 是一样的”。而是因为:①可变参数最终会被编译器以数组的方式存下来;然后调用的时候会优先匹配定长参数的方法,只有当定长参数的方法一个都匹配不上了,才去找非定长参数的方法;②你这个上转型之后其实让base这个实例拥有了两个方法,一个是父类的不定长参数,一个是子类的定长参数方法;

传参不报错是因为判断参数是否合法时匹配到了不定长参数那个方法;然后执行时优先匹配到了定长参数方法(可变参和数组存储方式一致)。编译器并不知道什么可变不可变,就单纯的按照规则去校验调用;

对编译器来说,方法名称和参数列表组成了一个唯一键,称为方法签名,JVM 通过方法签名决定调用哪种重载方法。

JVM 在重载方法中选择合适方法的顺序:

① 精确匹配。

② 基本数据类型自动转换成更大表示范围。

③ 自动拆箱与装箱。

④ 子类向上转型。

⑤ 可变参数。

你这个上转型实现后,即实现了重写,又实现了一种特殊的重载;而编译器编译时检查参数合法性的时候检查到了可变参的方法(你鼠标挪到调用的地方你会看到,编译器提示的你的方法是父类的可变参方法的,因为此时这个参数不是数组,是匹配不到定长参数的子类方法的);


然后编译好具体执行的时候,编译器哪还知道什么定长不定长,就按照优先级去调用方法,自然就把优先级高的子类定长方法调用到了,不存在什么动态绑定。


这里如果你把子类和父类的参数交换(子类是可变参数,父类是数组)那你的调用就报错了,因为可变参兼容数组,但是数组却不兼容可变参,这样就只形成重写而没有重载,然后上转型后就只能调用父类的方法了。就会报错咯

G. Java 形参 与 实参

这里主要涉及值传递和引用传递的区别,fun(int a)属于值传递,函数内部不会影响传进来参数的值;fun(int[],int,int)属于引用传递,实际上传入函数的并非数组每个数据的值,而是数组的地址,所以函数内容会直接影响数组的变化,建议你自己也可以多了解一下数据的引用类型和地址传递,这应该还是比较重要的

H. Java方法中是不是一定要有形参

这个要看你写的方法需不需要一个外界传入值,如果需要传入一个值那么就需要形参,如果你写的方法不需要,那么就不用形参了
比如:我这个有个比较方法 需要外部给我传递两个值做比较
public void Compare(int i,int j){
if(i>j){
System.out.println(i+"大于"+j);
}
}
如果不需要传参那个就不用 比如:
public void Compare(){
int i=100,j=200;
if(i>j){
System.out.println(i+"大于"+j);
}else{
System.out.println(i+"小于"+j);
}
}

I. JAVA中的形参和实参是什么意思

Java——形参和实参的区别形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。

实参出现在主调函数中,进入被调函数后,实参变量也不能使用。

形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。

1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元。因此,形参只有在函数内部有效。
函数调用结束返回主调函数后则不能再使用该形参变量。

2.实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。
因此应预先用赋值,输入等办法使实参获得确定值。

3.实参和形参在数量上,类型上,顺序上应严格一致, 否则会发生“类型不匹配”的错误。

4.函数调用中发生的数据传送是单向的。 即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。
因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。

5.当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变。

如果函数的参数是指针类型变量,在调用该函数的过程中,传给函数的是实参的地址,在函数体内部使用的也是实参的地址,即使用的就是实参本身。所以在函数体内部可以改变实参的值。

J. java中形参是什么意思

形参,即形式参数,是在定义函数中指定的,如public static void Test(boolean b){......}括号中的b即为Test的形参.形参在未出现函数调用的时候时,并不占内存中的储存单元,只有发生函数调用时,形参才被分配内存单元.在调用结束后,形参所占的内存单元也被释放.
实参,即实际参数,它可以是常量,变量或表达式,但要求它们有确定的值,在调用时将实参的值赋给形参.如调用刚才的Test函数时,Test(True),这里的True就是实参,又如boolen i = true;Test(i),这里的i就是实参.
实参与形参的类型应相同或赋值相同

热点内容
图片服务器ftp 发布:2025-01-22 15:52:33 浏览:506
sql打开bak文件 发布:2025-01-22 15:47:32 浏览:106
opengl服务器源码 发布:2025-01-22 15:40:02 浏览:908
python部署服务 发布:2025-01-22 15:38:46 浏览:282
压缩机卡装 发布:2025-01-22 15:37:04 浏览:446
每天跑步40分钟可以缓解压力吗 发布:2025-01-22 15:33:24 浏览:448
线性表的链式存储结构与顺序存储 发布:2025-01-22 15:32:45 浏览:295
解压缩大师 发布:2025-01-22 15:26:51 浏览:386
xp访问win7共享打印机无权限 发布:2025-01-22 15:23:22 浏览:830
python中pandas 发布:2025-01-22 15:21:42 浏览:639