java省去了C++里面最为繁琐的指针,这是它比C++好的一个地方。java中的每个变量和对象都可以看成是C++中的引用
如果你想靠参数来返回变化,那也好办。只要你在这个方法(也就是函数)所在的类里面定义你想返回的变量,再函数里改变它,再函数外一样引用它。
如果不想这样,那你就老老实实的返回这个参数。(有多个时只能用上面那个方法)

解决方案 »

  1.   

    java 里当然有引用,java里省略了指针,是基于安全方面的考虑。其实你问的是关于语言方面的细节问题,
    你应该先找相关的资料看看,
    是否复合你的愿望,
    确定要学它,就找本书系统的看看,你会明白的多
    不要左顾右盼,现在各方面的语言很多,但关键是抓住一门,学精它
      

  2.   

    JAVA是传值调用!即建立一个对参数值的拷贝!
    JAVA中有引用!
      

  3.   

    java里任何一个对象的实例都是引用,都是指针,就是简单的基本变量也是
      

  4.   

    首先同意楼上的观点,Java里有指针( <<ThinkInJava>>中看的),但是有些书中说Java中没有指针,老师上课也是这么说的。所以现在还有些模糊,希望有道理的说服。
    还有我没学过C++,只学过C。不明白你们说的引用是什么意思,能给个Java的例子吗?谢谢!
      

  5.   

    Java里有指针( <<Think In Java>>中看的)
    说出这句话说明你根本就没有好好看<<Think In Java>>
      

  6.   

    linyudie(蝴蝶夜雪) ,不想看书就想学好东西,靠在论坛上问问题来提高,
    这种想法不知道你是怎么产生的,
    这样做无异于南辕北辙,舍近取远。如果你一定要这么做,无话可说。另外,JAVA里面有没有指针一说,
    我想这个最基本的是要搞清楚到底你自己想的指针是什么意思,
    没有绝对的界限,只要你理解了JAVA的引用,那么完全可以认为它就是指针,
    但是注意,我说它是指针,但是不指的C里面的指针,好了,为了区别它们我还是叫引用吧,
    在JAVA中没有象c指针这样的东西存在的,实际上,JAVA的引用我认为也应该区别于C的引用,
    最后,不要把JAVA和C比,两者没有可比性,也没有必要,
    既然你要学JAVA,那么就抛开c,从头开始好好学JAVA,不但是JAVA语法,更重要的是面向对象的思想,如果你非要和C比比,那是自找麻烦,注意,我说的是抛掉c的语法概念,c里面好的东西还是可以借鉴的。
    这里和学英语是一个道理,完全融入一个英语的环境会让你学得更好更快,
    最好思维上也转变,要不难免不说出中国英语。所以说,java有java得解决方法,不要一有问题就想到,哦,我原来用c得时候是这么解决得,用java应该是这样。最后:引用:那么我要是想靠参数返回变化怎么办?
    这个问题太抽象,问问题最好说明清楚,要不大家不好回答,
    什么叫用参数返回变化?
    这有很多解释得,简单得,你想执行完一个方法后返回一个值来表明结果,那么你简单的
    RETURN一个值就可以了啊,
    如果你的想法是,你有一些数据,想让这个方法处理一下,比如排序,但是处理完成后你仍然要掌握这些数据,当然这些数据已经经过了必要的处理,
    这里有一些不同的方式,简单的,你可以把这些数据组织成对象传递给方法处理,
    这里你要理解JAVA的对象引用和JAVA的参数传递机制,
    JAVA是传值的,JAVA的对象引用被作为参数传递进入方法,你仍然是可以使用当前的对象引用访问到对象的,而且是同一个方法,
    所以结论是尽管让方法处理你的对象好了,执行完成之后,你直接再使用之前的对象引用访问这个对象就可以,所以这么做不需要返回值。最后,如果有人说java里有指针,那么请不要妄下结论,认为这个说的指针的含义和c里面的指针的含义是一样的。
    只是一个词而已,可以很多解释的,真正需要的是理解java引用本身,那么用哪个词来说明它就次要了,当然,c指针的含义基本上成了普遍的对指针这个词的解释,有必要用“引用”这个词来形容。再举个例子,可能不是很好,
    假设有一个数组A,然后有一个INT P,呵呵,这个变量P专门被用来访问A中的元素,
    因为要有一定顺序来访问,所以用一个P来会方便一些把,
    这个时候我会说P是一个指针,
    因为我认为这才是指针的原意。
      

  7.   

    纠正下:你仍然是可以使用当前的对象引用访问到对象的,而且是同一个方法,
    最后应该是说:同一个对象。
    好像说了一堆“最后”,BLUSH,
    可惜这里我没有找到修改帖子的功能。
      

  8.   

    Object obj=new Object();
    ......
    void method(Object obj) {
    ...
        obj.doSomething();
    ...
    }
    ......
    method(obj)可以改变obj的状态//////////////////
    以上代码只是提示,说明java传对象时传引用,传值时是传值(其实引用也是传值、传引用的值)  在函数体对引用进行操作,引用的对象就会改变。
      

  9.   

    对于简单类型如int,float,char,用他们的wrap类即可,如:
    /* c program */
    void foo(int *a)
    {
      *a = 10;
    }
    在Java中写为:
    void foo(java.lang.Integer a)
    {
      a.setValue(10);
    }
      

  10.   

    谢谢 bw78619(Genghis Khan) :)至于前面几位说的方法,我问之前就已经想过了,试过也没有问题,但是觉得不如C++的引用更方便一些,看书上没有,所以才跑了来,我不想看书是因为我现在并不真的使用java,我看程序一般没有什么问题,各种C/C++,几种asm,马马虎虎的话delphi,ada也可以,所以我不想从头看太基础的东西了,不要太难为的话,给我一小点代码也可以,不用为我担心,呵呵 :)我主要使用的是C和相应处理器的asm,其实连C++都不经常使用,而且我主要是编内核程序,所以我所指的指针是对内存的访问,而java中看起来更像是对象的概念,既然java一定程度的隐蔽了指针,我就不认为它会把引用和指针统一起来,可以想象一下exploit的时候我们是怎么做的,所以我当时认为也许java会有一种专门提供的方法,就编译而言,我想要的是bw78619(Genghis Khan)说的那种方法在语言上的扩展.