首页 > 编程知识 正文

Java实参与形参类型例子,java中形参和实参是什么

时间:2023-05-04 17:23:07 阅读:155218 作者:136

在java中将参数传递给方法是传递参数的副本。 这意味着在方法运行时会分配保留参数值副本的内存空间,更改副本值不会影响原始参数。

要理解形参和实参,避免编码所需的错误,需要明确两个概念。

1、什么是形参和实参

2、方法调用时参数传递的过程

3、传价和传参

import lombok.allargsconstructor; importlombok.Data; importlombok.NoArgsConstructor; publicclassargumentstest { publicstaticvoidmain { string [ ] args }

EMPEMPA=newEMP('ke ',22 ); int num=22;

apply(EMPA;

system.out.println(EMPA;

apply2(num );

system.out.println(num;

}publicstaticvoidapply(EMPEMP ) )

EMP=newEMP(Li ),77 );

}publicstaticvoidapply2(Intnum ) {

num=33;

}

@AllArgsConstructor

@NoArgsConstructor

@ datastaticclassemp { privatestring name; 私有增量;

}

}

首先什么是形参? 什么是实参?

在上述代码中,apply方法的参数emp是表示参加该方法的实际参数的逻辑的波形参数、波形参数; 实参是在调用方法时传递给方法的参数值,是main方法的empA。

方法运行时如何传递参数?

首先,每个变量对应于存储参数值的内存区域。 在执行方法时,虚拟机会在堆栈中创建内存空间并保存实例的副本。 该内存空间在方法调用结束时被丢弃,对副本的更改不影响原始参数的值。

传价和传参?

java有两种数据类型:基本类型和引用类型。 如果变量是基本类型,则为保存在与变量对应的内存空间中的变量值。 例如,在上述代码中为num保存22; 如果变量是引用类型,则内存保存堆中实际对象的地址。

另一方面,方法调用时传递的是变量对应于内存中的值,不同之处在于基本类型参数将值传递给方法,引用类型参数将对象的存储器地址传递给方法。

引用类型包括类类型、接口类型和数组。

执行以上代码:

结果:

argumentstest.EMP(name=ke,age=22 ) 22

原始参数值未更改。

引用类型参数的值已更改

改变APP方法的逻辑:

publicstaticvoidapply{

EMP.setname(Li );

EMP.setage(44;

}

结果:

argumentstest.EMP(name=Li,age=44 ) )。

原始参数已更改。 为什么?

这是因为,虽然方法中的参数是原始参数的副本,但实例对象的堆中只有一个数据,所以直接修改对象的属性值就可以修改原始参数值。

对于数组,可以更改单个数组元素的值,如所示。

在包类中,可以通过反射方式修改内部value来获得相同的效果。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。