如图为什么有return的可以……而在方法赋值不可以……求回答

解决方案 »

  1.   

    你这第一个图里面那个result,你再main方法里面new了一个传到方法里,然后方法里怎么不直接用传进来的result,而是自己又在方法里new了一个,这就不是对象传递了啊
      

  2.   

    哦  他这意思应该是第一种方式是引用传递为什么那个result并没有改变
      

  3.   

    这大兄弟的意思我懂了,我简化了下试了,确实不行,本人也有疑问,借此望大佬解惑User 类里只有一个name属性,这个不应该是引用传递么,User1的值并没有被改变
      

  4.   

    你把static去掉,你就明白了
      

  5.   

    你把static去掉,你就明白了
    效果是一样的啊去掉
      

  6.   

    哦  他这意思应该是第一种方式是引用传递为什么那个result并没有改变对为啥没有传递很疑惑啊……有答案了不兄弟……百度没有找到类似的回答
      

  7.   

    哦  他这意思应该是第一种方式是引用传递为什么那个result并没有改变对为啥没有传递很疑惑啊……有答案了不兄弟……百度没有找到类似的回答
    嗯嗯  明白了  问了一些人 你可以看下这个https://www.cnblogs.com/hpyg/p/8005599.html?tdsourcetag=s_pcqq_aiomsg
      

  8.   

    我建议你们重新开始学Java,最好再看一下内存的原理
    这么讲吧,比如说我电脑里面有一张照片,你想要这张照片,然后我复制一份发给你,你对这张照片进行了ps,但是没有给我,然后你问我为啥我的照片和你的那张不一样。
    就和你写的差不多,你方法返回值为void,调用方法后就在内存中重新开辟一个区域,将传递的值复制过来,再进行操作,然后方法结束,整个区域就被删除。
    表达不好,说不清楚,自己去看书。
      

  9.   

    这个引用传递的本质还是值的传递,只不过对象传递的是地址值。 
    你在方法里边重新new一个对象出来,然后赋值给你的形参的时候,
    其实是将新对象的地址值赋给了形参,这个操作跟你传递基本类型的变量进行修改后不生效是一个道理的。 
      

  10.   

    你说的也不对  你那是说的基本类型值传递,所以是新开辟空间,引用类型又没有开辟新空间,这里只是引用在new User2赋值给user1时,user1的引用不再指向原来的user1了而已,只是基础不扎实,没必要说出“建议重新学java这种话吧”
      

  11.   


    看图吧,说不清楚
    你说的也不对  你那是说的基本类型值传递,所以是新开辟空间,引用类型又没有开辟新空间,这里只是引用在new User2赋值给user1时,user1的引用不再指向原来的user1了而已,只是基础不扎实,没必要说出“建议重新学java这种话吧”
      

  12.   

    你说的也不对  你那是说的基本类型值传递,所以是新开辟空间,引用类型又没有开辟新空间,这里只是引用在new User2赋值给user1时,user1的引用不再指向原来的user1了而已,只是基础不扎实,没必要说出“建议重新学java这种话吧”
    你这有点复杂啊画的,假设main方法里声明的是user1,参数是user2,方法里声明的是user3,那user3赋值给user2前后是不是这样:
    然后方法调用完毕user2和user3都回收了,所以user1指向的对象一直没变