值和引用参数

 值和引用参数
  值:只是将值的一个副本传递,因此不因原变量的值。
 
引用:传递的是引用的一个副本,(对相同数据的另一个引用),因此要改变原数据(字符串另解)

 refout方法参数
  ref
正被传递的参数指向与正被调用代码中的变量的同一内存地址(在调用前对传递的参数进行初始化)
  out
同上,可以在调用之前不对参数进行初始化,但是必须在调用的方法内修改out参数
 
总结:在为out参数赋值前不能使用它,而且在从方法返回前必须为它赋值。
  
public class Class1
    {
       public Class1(){}
       protected Class1(int i){}

       public int ID;
    }

    public class myclass
    {
/*     public Class1 chaObject(out Class1 ref1)
       {
           ref1.ID = ref1.ID * 2;
           return ref1;
       }

       public Class1 chaObject(out Class1 ref1)
       {
           ref1.ID = 4;
           return ref1;
       }

       public Class1 chaObject(out Class1 ref1)
       {
           int x = ref1.ID;
           ref1 = new Class1();
           ref1.ID = x * 2;
           return ref1;
       }*/

       public Class1 chaObject(out Class1 ref1)
       {
           ref1 = new Class1();
           ref1.ID = 99;
           return ref1;
       }
    }

    public class Test
    {
       static void Main(string[] args)
       {
           myclass mc = new myclass();
           Class1 ref1 = new Class1();
           ref1.ID = 3;

           Class1 ref2 = mc.chaObject(out ref1);
       }
    }
被注释掉的地方,为编译无法通过的。
总结:如果通过值传递引用,那么就是在传递引用的副本;如果通过引用传递引用,那我们实际上是在传递原来的引用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 方法参数传递和引用传递在Java中有一些区别。传递是指将实际参数复制一份给形式参数,形式参数在方法内部进行操作时不会影响到实际参数。而引用传递是指将实际参数引用传递给形式参数,形式参数和实际参数指向同一个对象,在方法内部对形式参数的操作会影响到实际参数。\[1\] 在Java中,对于普通类型的参数,如int、float等,传递的是的副本,即进行传递。这意味着在方法内部对形式参数的修改不会影响到实际参数。\[1\] 而对于对象类型的参数,传递的是对象的引用,即进行引用传递。这意味着在方法内部对形式参数引用的对象进行修改时,会影响到实际参数引用的对象的。但需要注意的是,对于对象的重新赋操作,即改变了形式参数引用指向的对象,不会影响到实际参数引用。\[1\] 需要注意的是,Java中的参数传递严格意义上说应该是按共享传递,也就是说形式参数和实际参数共享同一个对象。这是因为Java中的对象是通过引用来操作的,而不是直接操作对象本身。\[3\] 总结起来,Java中的方法参数传递可以分为传递和引用传递。对于普通类型的参数,进行传递,对于对象类型的参数,进行引用传递。但需要注意的是,对于对象的重新赋操作,不会影响到实际参数引用。\[1\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [Java中的参数传递,到底是传递还是引用传递?](https://blog.csdn.net/weixin_43232955/article/details/106082129)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值