为什么一定要这样呢?
c=add(a,b)就不行吗?在c中是因为是引用c的地址变量从而答到改变c值的目的
当然在java中也能,但这不提倡!

解决方案 »

  1.   

    用返回值就行了啊,或者传入一个包含c字段的Class C,其中有设置c的方法setValue
    然后在add中调用
    C.setValue(a + b);就行了
      

  2.   

    Add(a,b)
    {
      return c;
    }
     这样显得更专业。
      

  3.   

    miaoliujun(傲龙) 可是,c=add(a,b)只能返回一个量啊,要是返回两个量呢?还有,java中没有指针吧,如何引用c的地址变量呢?star821116(冰冻三尺非一日之寒) 传入一个包含c字段的Class C,也许有效,但是是不是犯不上这么费事呢?
      

  4.   

    在C++中可以利用引用来操作函数中的参数,而在Java中没有这样的功能.但是,Java允许改变函数中的参数对象.更直接的说,在Java语言中,常规的变量类型(如int)作为函数参数都是传值调用,而对象却是传址调用.所以,你必须先将int类型的变量转成一个Integer类型的对象,再传到函数中.
      

  5.   

    对于基础类型java不能实现变参,因为其是post By Value的,但是可以通过装箱操作来实现变参的调用,具体方法是将一个基础来行装箱为一个基础类型的对象来传人,然后再开箱就可以了.数组本身不是基础类型而是一个类的对象.
      

  6.   

    Afritxia(Leaocom) 能不能举个简单的例子呢?
      

  7.   

    回楼主,您希望的用一个类似 public void add(int a, int b, int c)的函数,来计算a + b的值并保存到 c 的实参里,在Java里是无法实现的Afritxia(Leaocom)说的可能是这个意思:public void add(int a, int b, Integer c){
      c.setValue(a + b);
    }这个方法看起来好像是可以的,当此函数被调用的时候, a 和 b都是直接把值传进来的, 而c其实是一个指向 Integer对象的指针,你调用c.setValue()的时候就修改了那个实际对象里面所存储的值。但是,这也是行不通的。因为 Integer 这个类所存储的值是无法改变的, 它根本就没有一个成员函数可以用来修改所存储的数值,setValue()这个函数是不存在的。唯一的解决办法是,你要自己写一个类class MyInteger {
      public int integer;
    }然后这样写 add 函数public void add (int a, int b, MyInteger c){
      c.integer = a + b;
    }这样,c所指向的实际对象里面的值就真正改变了
      

  8.   

    java 中除了简单类型比如 int,float之类的 其他的class产生的对象全部可以传变参java中看起来没有指针这个概念,其实,所有class产生的对象都是传引用,也就是指针很容易与c++混淆
      

  9.   

    整天在传旨和引用,实参和行参之间纠缠不清的人,完全没有领悟到面向对象的精华所在,面向过程:function(int, int, int, * 100个);
    面向对象 myObj.doSth(); 或者Another.doSth(MyObject);//MyObject里面存放100个int
      

  10.   

    整天在传旨和引用,实参和行参之间纠缠不清的人,完全没有领悟到甚么叫面向对象面向过程:function(int, int, int, * 100个);
    面向对象 myObj.doSth(); 或者Another.doSth(MyObject);//MyObject里面存放100个int
      

  11.   

    唯一的解决办法是,你要自己写一个类class MyInteger {
      public int integer;
    }然后这样写 add 函数public void add (int a, int b, MyInteger c){
      c.integer = a + b;
    }
      

  12.   

    4 天学完 Java 的牛人,居然还问这种语法问题 -_-!!
      

  13.   

    9494,我也觉得这个id好像是号称自己“4d学完java, 不知jar为何物”的人,同志,还是谦虚一点,无论你以前学过多少,基础多高,也不要说学完乐,哪怕是你已经学过的c,basic,帕是还有很多你不知道的东西,你懂得越多,你所知道的自己还不知道的东西也就越多
      

  14.   

    4 天学完 Java 的牛人,居然还问这种语法问题 -_-!!
      

  15.   

    onefox(一品狐) shine333(shine) JavaBoyCaoJi(老曹) 居然揭偶老底儿~~~~~气愤中-_-!!我这叫验证了爱因斯坦的话:学问就想化圆,学的越多越无知
      

  16.   

    整天在传旨和引用,实参和行参之间纠缠不清的人,完全没有领悟到甚么叫面向对象面向过程:function(int, int, int, * 100个);
    面向对象 myObj.doSth(); 或者Another.doSth(MyObject);//MyObject里面存放100个int
    老大看来比较的牛,比较精辟