java函数传参 菜鸟体会 以及 多参数返回解决方案

本文探讨了在Java中如何处理函数传参,尤其是当需要返回与传入参数相同数量的值时。作者通过示例展示了值传递和引用传递的区别,解释了在值传递中函数无法直接修改原始参数,而在引用传递中可以。此外,还提出了解决方案,即创建一个包含多个参数的数据封装类,在函数中修改此类对象并返回。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天打了一天酱油,还是基础太浅~~  归结为菜鸟中的菜鸟一点都不为过~

言归正传,问题是这样的,往函数里传入三个参数,希望返回值也有三个参数,而且是相同的三个参数(意思就是说要对传入的三个参数进行值的改变)

解决方法一:由于对函数传值的方式一直存在盲区~所以一直都没有敢轻易试水。

public static void newValue(Value value) {  
    value = new Value();  
    value.setValue("new value");  
    System.out.println("In newValue, HashCode = " + value.hashCode() + ", value = " + value.getValue());  
}  
      
public static void modifyValue(Value value) {  
    value.setValue("new value");  
    System.out.println("In modifyValue, HashCode = " + value.hashCode() + ", value = " + value.getValue());  
}  


第一种方法newValue:按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本。因此,如果函数修改了该参数,仅改变副本,而原始值保持不变。 

第二种方法modifyValue:按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值的副本。因此,如果函数修改了该参数,参数的原始值(函数块之外的调用代码中)也随之改变。(其中setvalue的方法是关键,如果要完成这个功能那么必须这个对象要有这个set方法)


解决方法二:重新写一个数据封装类,包含这个三个参数。在调用方法时,重新生成一个对象传出来。这个方法相对简单,也比较容易想到~几乎没有技术难度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值