java吧 关注:1,273,747贴子:12,783,725

对于方法中的返回值,大家都有怎样的理解?

只看楼主收藏回复

真的是“你给我钱我给你饮料”这种比喻么?


1楼2014-09-17 11:33回复
    我这里有个X方法,x(){1+2},我不返回结果,我把他用到另外一个Y方法 里面是1*(1+2),这里正好要用到X的方法里面的东西,这时候我就可以不用在Y方法里面写上1+2,直接把X里的1+2搬过来用就可以了,这就是没有返回值方法的作用体现。然后计算得出Y方法的返回结果是3。
    没有返回值的方法注重一个过程的其中一段插曲。
    有返回值的方法要的就是结果。


    2楼2014-09-17 11:34
    回复
      2025-08-13 06:03:38
      广告
      不感兴趣
      开通SVIP免广告
      本屌经验不足,处于累积经验的阶段,求一个通俗的理解方法~


      3楼2014-09-17 11:35
      回复
        你可以把一个方法想想成一个黑盒子,不知道里面的具体业务实现方式,你想通过该方法得到什么类型的值就在前面写什么类型,在方法内部return什么类型,如果这个方法你觉得没有必要返回值,就写void了,我觉得这样说也没理解到根本啊


        4楼2014-09-17 11:36
        回复
          我觉得应该是我对于函数地址传递和值传递,java内存还了解不深刻


          来自Android客户端6楼2014-09-17 11:48
          收起回复
            用面向对象的方式很好理解啊,有返回的,比如我搬砖返回钱,没返回的,我.表白(女神)


            IP属地:广东来自Android客户端7楼2014-09-17 12:27
            收起回复
              没有理解,接受这个设定就好了。


              IP属地:江苏来自Android客户端8楼2014-09-17 12:39
              收起回复
                有返回值的函数,通常关注的就是它的返回值,没有返回值的函数,通常关注它产生的副作用


                IP属地:广西9楼2014-09-17 12:45
                收起回复
                  2025-08-13 05:57:38
                  广告
                  不感兴趣
                  开通SVIP免广告
                  怎么感觉这么问题好奇怪啊,


                  IP属地:福建10楼2014-09-17 12:53
                  收起回复
                    本人学习java不久,看了你们的理解感觉都很好,值得学习,我目前的理解就是:需要用到方法的返回值时就返回,不需要就void。


                    11楼2014-09-17 13:08
                    收起回复
                      对象是什么?方法又是什么?属性到底是什么东西?听我给你将个例子你就明白了。
                      你是谁?你是个对象!你能干什么?你可以端茶倒水!你叫什么名字?你叫王八蛋!
                      我想要喝水,你会端茶倒水,我就让你去倒水,所以我给你说一句话:王八蛋去给我倒水;
                      理解了吗?
                      你就是个对象,你有属性就是你的名字,你能做的事就是倒水,所以倒水就是一个方法,方法的返回值就是水;你也可以做其他的事情,比如说去上班,我就说,王八蛋你去上班。我并不需要你拿回来什么东西,所以你去上班这个方法就没有返回值。
                      这样理解了吗?


                      IP属地:内蒙古12楼2014-09-17 14:37
                      收起回复
                        就像人拉屎一样,你不吃也可以拉,你吃了也可以拉, 嗯,没错就是这样.


                        IP属地:上海14楼2014-09-17 16:28
                        收起回复
                          14楼精辟。
                          你不吃也可以拉屎,这就是无参数函数有返回值
                          你吃了拉屎,这就是有参数函数有返回值
                          你吃了不拉屎,这就是有参数无返回值
                          你不吃也不拉屎,这就是无参数无返回值


                          IP属地:江苏来自Android客户端15楼2014-09-17 16:52
                          收起回复
                            1.将当前(父级)上下文压栈
                            2.将变量(值或者指针)放入寄存器
                            3.将指令寄存器指向调用函数(子函数)
                            ....子函数执行...
                            4.将返回值(值或者指针)放入寄存器
                            5.恢复父级代码的上下文
                            6.将指令寄存器指向父级函数
                            函数调用大致上是这个过程,123,456的先后顺序也许不太一样,记得不太清楚了,不过应该不影响理解。其中有没有入参和出参,区别就是2和4的步骤有没有。


                            IP属地:北京16楼2014-09-17 17:24
                            回复